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

结构体的指针有关问题

2012-02-05 
结构体的指针问题[例10.6]从键盘输入两个学生数据,写入一个文件中,再读出这两个学生的数据显示在屏幕上。#i

结构体的指针问题
[例10.6]从键盘输入两个学生数据,写入一个文件中,   再读出这两个学生的数据显示在屏幕上。  
#include <stdio.h>  
struct   stu  
{  
char   name[10];  
int   num;  
int   age;  
char   addr[15];  
}boya[2],boyb[2],*pp,*qq;  
main()  
{  
FILE   *fp;  
char   ch;  
int   i;  
pp=boya;  
qq=boyb;  
if((fp=fopen( "stu_list ", "wb+ "))==NULL)  
{  
printf( "Cannot   open   file   strike   any   key   exit! ");  
getch();  
exit(1);  
}  
printf( "\ninput   data\n ");  
for(i=0;i <2;i++,pp++)  
scanf( "%s%d%d%s ",pp-> name,&pp-> num,&pp-> age,pp-> addr);  
pp=boya;  
fwrite(pp,sizeof(struct   stu),2,fp);  
rewind(fp);  
fread(qq,sizeof(struct   stu),2,fp);  
printf( "\n\nname\tnumber   age   addr\n ");  
for(i=0;i <2;i++,qq++)  
printf( "%s\t%5d%7d%s\n ",qq-> name,qq-> num,qq-> age,qq-> addr);  
fclose(fp);  
}  

各位大大,我看了上面的程序有点问题不明白
为什么scanf( "%s%d%d%s ",pp-> name,&pp-> num,&pp-> age,pp-> addr);  
stirng就不用&符号,而int就用,什么意思啊?pp不就代表结构体的地址了吗?
printf( "%s\t%5d%7d%s\n ",qq-> name,qq-> num,qq-> age,qq-> addr);  
而这个全部不要...不解...望各位告诉我吧   谢谢

[解决办法]
char name[10];
这种变量里,name代表了变量的首地址,所以不需要&

热点排行