作业帮 > 综合 > 作业

#include "stdio.h" void point(char *p) {p+=3;} main() { char

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 17:29:55
#include "stdio.h" void point(char *p) {p+=3;} main() { char b[4]={'a','b','c','d'},*p=b; point(p);
为什么呢.
在调用point(p)时候,把p的地址传给了子函数,在子函数中的p加上了3,在子函数中的*p=c,函数调用结束后,对主函数中的 p 值没有影响,因为形参不改变p值,所以结果还是a
如果写成这样结果就是d
#include "stdio.h"
void point(char **p)
{*p+=3;}
void main()
{
char b[4]={'a','b','c','d'},*p=b;
point(&p);
printf("%c\n",*p);
}
注意比较吧