有以下程序 #include #include typedef struct { char name[10]; char sex; int age;} STU; void fun(STU *t) { strcpy((*t).name,"Tong");

admin2020-05-19  20

问题 有以下程序
#include
#include
typedef struct {
char name[10];
char sex;
int age;} STU;
void fun(STU *t)
{ strcpy((*t).name,"Tong");
(*t).age++;
}
main()
{ STU s[2]={"Hua",’m’,18,"Qin",’f’,19};
fun(s+1);
printf("%s,%d,%s,%d\n",s[0].name,s[0].age,s[1].name ,s[1].age );
}
程序运行后的输出结果是( )。

选项 A、Hua,18,Tong,20
B、Hua,18,Qin,19
C、Tong,19,Qin,19
D、Hua,19,Tong,19

答案A

解析 结构体数组名作为函数参数为地址传参,函数fun()的作用是把当前指针指向的结构体变量中的name赋值为"Tong",并让成员变量age自增1,调用函数时传递的是数组第二个元素的地址,所以改变的是第二个元素的值,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/A9G0FFFM
0

最新回复(0)