结构体什么时候调用形参对调用的实参没有影响

有以下程序:#include<stdio.h>typedefstruct{intb,p;}A;voidf(Ac)/*注意:c是结构变量名*/{intj;c.b+=1;c.... 有以下程序:
# include <stdio.h>
typedef struct { int b, p; } A;
void f(A c) /* 注意:c是结构变量名 */
{ int j;
 c.b += 1; c.p+=2;
}
main()
{ int i;
 A a={1,2};
 f(a);
 printf("%d,%d\n", a.b, a.p);
}
程序运行后的输出结果是(  )。

A) 2,4
B) 1,2
C) 1,4
D) 2,3
展开
 我来答
匿名用户
2013-08-08
展开全部
B)1,2

因为你这里参数实际上传值,只是把a的值传过去而已,所以f(a)函数中对a的改变,无法影响到实参.

如果该为:
void f(A *C)
{
....

}
同时调用:
f(&a);

这中情况下就是传地址,实际就是指针,此时f(&a)中直接操作的是a的内存地址,所以会影响实参a的值,输出A),2,4
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式