A-A+
有以下程序 include<stdio.h> typedefstruct{intb p;)A
问题详情
有以下程序 include<stdio.h> typedefstruct{intb,p;)A; voidf(Ac)/*注意:C是结构变量名*/{ intj; c.b+=l;c.p+=2;} main(){ i;Aa={l,2}; f(a); printf(”%d,%dn”,a.b,a.p);) 程序运行后的输出结果是
A.274
B.1,2
C.1,4
D.2,3
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:B
在C语言中,数据只能从文参单向传递给形参,称为”按值”传递。也就是说,当简单变量作为实参时,用户不可能在函数中改变对应实参的值。所以本题中在main()函数f(a)语句中结构体实参a作为值,传递给函数f(AC中的形参c;这种值传递的方式不会对实参a产生任何影响,所以结构体实参a的值不会发生变化。