结构体指针
#include<stdio.h>#include<stdlib.h>
struct student
{
char name;
char xuehao;
int math;
int eng;
int total;
}stu1,stu2,*pp,*qq;
void main()
{
FILE *fp;
int i;
pp=stu1;
qq=stu2;
if((fp=fopen("D:\学习","wb+"))==NULL)
{
printf("Cannot open file\n");
getch();
exit(1);
}
for(i=0;i<5;i++,pp++)
scanf("%s %s %d %d",pp->name,pp->xuehao,&pp->math,&pp->eng);
pp=stu1;
fwrite(pp,sizeof(struct student),5,fp);
rewind(fp);
fread(qq,sizeof(struct student),5,fp);
for(i=0;i<5;i++,qq++)
{qq->total=qq->eng+qq->math;
printf("%s\t%s %d %d %d\n",qq->name,qq->xuehao,qq->math,qq->eng,qq->total);}
fclose(fp);
}
这里为啥要pp=stu1 qq=stu2
第一个和第二个pp=stu分别是啥意思 为什么不能直接用指针pp 我感觉有点问题
就相当于
int *i = int a
挺多余的
这个操作就是把那个数组的地址给了那个指针,然后再把那个指针当成数组来用,感觉可以直接用那个数组。
页:
[1]