填空题
有以下程序:
# include<string.h>
struct STU
{ char name[10];
int num;};
void f(char *name, int num)
{ struct STU s[2]={{"SunDan",20044},{"Penghua",20045}};
num=s[0].num;
strcpy(name,s[0].name);
}
main()
{ struct STU s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;
p=&s[1];f(p->name,p->num);
printf("%s %d/n",p->name,p->num);
}
程序运行后的输出结果是{{U}} 【8】 {{/U}}。
【正确答案】
1、SunDan 20042
【答案解析】[解析] f函数中形参1用的是显式传地址的方式,因此p->name的值发生改变,而形参2用的传值的方式,在调用时不改变实参的值,因此p->num的值不发生变化。