单选题
8、 有以下程序
8、 有以下程序
struct STU{
char name[10];
int num;
};
void f1(struct STU c)
{ struct STU b={"LiSiGuo",2042};
c=b;}
void f2(struct STU *c)
{ struct STU b={"SunDan",2044};
*c=b;
}
main( )
{ struct STU a={"YangSan",2041},b={"WangYin",2043};
f1(a);f2(&b);
printf("%d %d\n",a.num,b.num);}
执行后的输出结果是 ()。
A
2041 2044
B
2041 2043
C
2042 2044
D
2042 2043
答案解析
正确答案:A
解析:
传值和传地址的题目
要想改变原来实参的值就必须传地址,就是指针,或者是引用,所以只有f2能达到改变实参值的目的,f1 不能改变原来参数的值,
要想改变原来实参的值就必须传地址,就是指针,或者是引用,所以只有f2能达到改变实参值的目的,f1 不能改变原来参数的值,
