#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(&quot;%d&quot;,*p);程序运行后输出结果是什么?为什么
2024-11-24 00:05:02
推荐回答(1个)
回答1:

#include
void f (int *p);
void main()
{
int a[5]={1,2,3,4,5},*r=a;
f(r); //将首地址a传给函数p
printf("%d\n",*r); //由于是值传递,即将r的值传给p,但是没有改变r的值,
//此时*r的值既是a[0]

}
void f (int *p)
{
p=p+3; //将p所指向的地址向后移动三位,即指向4
printf("%d",*p);//此时*p的值即是a[3]的值
}