有以下程序: # include<string.h> struct STU { char name[10]; int num;}; void f(char *name, int num) { struct STU

admin2013-02-23  28

问题 有以下程序:
   # 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);
   }
   程序运行后的输出结果是【  】。

选项

答案SunDan 20042

解析 f函数中形参1用的是显式传地址的方式,因此p->name的值发生改变,而形参2用的传值的方式,在调用时不改变实参的值,因此p->num的值不发生变化。
转载请注明原文地址:https://jikaoti.com/ti/sMB0FFFM
0

最新回复(0)