2级问题 有以下程序 #include<stdio.h> void f(int *p); main() {int a〔5
2级问题 有以下程序 #include<stdio.h> void f(int *p); main() {int a〔5〕=
解释一下为什么这个是传值调用而不是传地址调用???
(29)有以下程序
#include<stdio.h>
void f(int *p);
main()
{int a〔5〕={1,2,3,4,5},*r=a;
f(r);printf(“%dn”;*r);
}
void f(int *p)
{p=p+3;printf(“%d,”,*p);}
程序运行后的输出结果是
A)1,4 B)4,4 C)3,1 D)4,1
【答案与解析】D、本题考察函数值传递的问题。f函数参数为指针,容易让人误解为传址的问题,但实际上只是简单传值问题,调用后实参没有改变。故答案选D。(这是完整的)