贵州省大扶贫条例:后天考c语言,可是复习时候碰到一些困难,请问大家帮忙解答!急13

来源:百度文库 编辑:神马品牌网 时间:2024/05/08 17:33:00
(45)有以下程序
?? point(char *p){p+=3;}
??main()
??{ char b[4]={'a','b','c','d'},*p=b;
??point(p);printf("%c\n",*p);
??}
??程序运行后的输出结果是__a____。
??A)a B)b C)c D)d
告诉我下这个程序讲的什么啊?我看不懂

应该是D!
该题主要是考函数调用和主函数中的值的问题!因为本题是按引用传值,不是按拷贝来传值,所以值会跟着改变!P先指向的是字母a的地址,然后P加三,往后移,所以应该选D!

最根本的原因是:
形参值的改变不能够影响实参值的改变!!

D p是一个指针,初始时指向数组的首地址。

对对,应该是D,实在不好意思,没看清题目。

point(p)的时候生成了一个临时变量,类型是char *,值和p相同同样是数组b的第一个元素,point()使这个临时变量增3,不影响p本身,p始终指想数组第一个元素