将结构体作为参数时发生了什么?

有以下程序:

# include <stdio.h>

typedef struct { int bp} A

void f(A c) /* 注意:c是结构变量名*/

{ int j

 c.b +=1c.p+=2

}

main()

{ int i

 A a{1,2}

 f(a)

 printf("%d%d\n"a.ba.p)

}

程序运行后的输出结果是(  )

A) 2,4

B) 1,2

C) 1,4

D) 2,3

参考答案:B

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

posted @ 2016-09-22 16:19  黑乌鸦  阅读(438)  评论(0编辑  收藏  举报