#include<stdio.h> void f (int *p); main() {int a[5]={1,2,3,4,5},*r=a; f(r);printf("%d\n",*r);

}voidf(int*p){p=p+3;printf("%d",*p);程序运行后输出结果是什么?为什么... }
void f (int *p)
{p=p+3;printf("%d",*p);
程序运行后输出结果是什么?为什么
展开
 我来答
erxiao1988
2011-09-11
知道答主
回答量:7
采纳率:0%
帮助的人:8.4万
展开全部
#include<stdio.h>
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]的值
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式