结构体变量的指针问题
#include <stdio.h>struct Student
{
int num;
char name[10];
float score[3];
};
static void print(struct Student *p);
int main()
{
struct Student student[5],*p;
int i;
printf("please input the five students' information:\nnum\tname\tscore1\tscore2\tscore3\n");
for(i=0;i<5;i++)
scanf("%d %s %f %f %f",&student[i].num,student[i].name,&student[i].score[0],&student[i].score[1],&student[i].score[2]);
p=student;
print(p);
return 0;
}
static void print(struct Student *p)
{
int i;
printf(" the five students' information:\nnm\tname\tscore\n");
for(i=0;i<5;i++)
{
printf("%d %s %f %f %f",(*p).num,(*p).name,(*p).score[0],(*p).score[1],(*p++).score[2]);[
printf("\n") ;
}
}
问题在表情的位置,按我那样写,将p++放在score[2]的位置,和将p++放在for(i=0;i<5;i++)的i++后面为什么不一样???
不需要从理解这个程序的前提解答,单纯从表情所在位置语句的语法角度解释下。(运行结果是前者错误,后者正确,题目背景是输入输出五个学生的成绩信息