问题 单项选择题

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

答案

参考答案:B

解析: 结构体变量可以作为函数的参数和返回值。作为函数的实参时,可以实现函数的传值调用。当使用结构体变量作为函数的形参时,实参也应该是结构体变量名,以实现传值调用,实参将复制副本给形参,在被调用函数中改变形参值对调用函数中的实参没有影响。所以选择B。

名词解释
单项选择题 案例分析题