问题 单项选择题

有以下程序: 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,3

B.2,4

C.1,4

D.1,2

答案

参考答案:D

解析: 在函数调用变量作为参数传递是进行值传递,在函数中对形参变量的修改不会影响对应的实参变量。本题中定义了一个函数f(),用变量作为实参,在main()函数中调用了一次f()函数,形参进行计算:c.b+=1=1+1=2,c,p十=2=2+2=4,由于参数传递变量不会影响实参的值,所以a.b和a3.p还是原来的值。

单项选择题
单项选择题