问题
单项选择题
有以下程序 #include<stdio.h> void f(int *p); main() {int a[5]={1,2,3,4,5),*r=a; f(r);printf("%d\n",*r); } void f(int *P) {p=p+3;printf("%d,",*p);} 程序运行后的输出结果是( )。
A.1,4
B.4,4
C.3,1
D.4,1
答案
参考答案:D
解析: C语言只存在传值调用,形参的改变不会影响实参的改变,调用函数f,p指向a[3]输出4,但是r仍然指向a[0]输出1。