首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于结构体和共用体用scanf输入时加&获取地址,该如何处理

2012-04-16 
关于结构体和共用体用scanf输入时加&获取地址C/C++ code#includestdio.hstruct{ int numchar name[10]

关于结构体和共用体用scanf输入时加&获取地址

C/C++ code
#include<stdio.h>struct{ int num;  char name[10];  char sex;  char job;  union  { int clas;    char position[10];  }category;}person[2];int main(){    int i;    for(i=0;i<2;i++)    {printf("please enter the data of person\n");     scanf("%d %s %c %c",[color=#FF0000]&person[i].num,&person[i].name,&person[i].sex,&person[i].job[/color]);     if(person[i].job=='s')         scanf("%d",[color=#FF0000]&person[i].category.clas[/color]);     else if(person[i].job=='t')         scanf("%s",[color=#FF0000]person[i].category.position[/color]);     else         printf("input error");    }    printf("\n");    printf("No.   name    sex  job  class/position\n");    for(i=0;i<2;i++)    {        if(person[i].job=='s')            printf("%-6d%-10s%-4c%-10d\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.clas);        else            printf("%-6d%-10s%-4c%-10s\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.position);    }    getch();    return 0;    }

为什么上面有些用有些不用啊? 请解释一下。 谢谢

[解决办法]
C/C++ code
char name[10];//当是数组的时候,数组名代表的就是数组的首地址,所以可以不用加,也可以加,上面的&person[i].name和person[i].category.position就可以看得出来 

热点排行