有以下程序
#include
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);
}
程序运行后的输出结果是( )。
在调用 f 函数时, 形参 p 通过传递参数指向了数组 a 的起始地址, 执行语句“p=p+3;” 后指向了 a[3]的地址, 所以输出 4; 主函数中, 指针 r 仍指向数组 a 的首地址, 所以输出 1。 答案选择 D 选项。