C语言 point(char*pt); main() {char b[4]={'a','c','s','f'},*pt=b; pt=point(pt); printf(&quo

Python018

C语言 point(char*pt); main() {char b[4]={'a','c','s','f'},*pt=b; pt=point(pt); printf(&quo,第1张

就算函数调用成功,输出也为d,而不是a,数组下标是从0开始.

被调函数的计算结果在离开函数大括号后就已经不在了,

回到主函数的变量p并不是调用函数后的计算结果,p仍然是

数组b的首地址,所以输出是a.

char

*p//定义全局变量

point(char

*c)

{

p=c+3

}//全局变量返回计算结果

main()

{

char

b[4]={'a','b','c','d'}

p=b//p为数组首地址

point(p

)//调用函数,地址加3

printf("%c\n

",

*p)//输出为b[3]

}

(char*)i将i强制转换为字符类型,将值赋给point,赋值后输入指针的值为i的值(具体结果要看是以什么格式输入)

如果point为指针,这种赋值能通过编译,但没有实际意义。