#include <stdio.h>
int main()
{
struct person
{
char name[20];
char address[30];
int num[3][3];
struct person*next;
};
struct person a = { "wang hong","shang hai",{0, 18,96} };
/* 0表示女性,18表示年龄,96 表示某课程的成绩*/
struct person b = { "li ming","tian jin ",{1, 23,99} };
struct person c = { "chen lin","bei jing",{0, 21,90} };
struct person* p;
a.next = &b;
b.next = &c;
c.next = NULL;
for (p = &a; p != NULL;p++)
printf("%s,%s,%d,%d,%d\n",p->name, p->address, p->num, p->num,
p->next);
printf("\n");
return 0;
}
修改处见注释,供参考:
#include <stdio.h>
int main()
{
struct person
{
char name[20];
char address[30];
int num[3]; // num[3][3] 修改
struct person* next;
};
struct person a = { "wang hong","shang hai",{0, 18,96} };
/* 0表示女性,18表示年龄,96 表示某课程的成绩*/
struct person b = { "li ming","tian jin ",{1, 23,99} };
struct person c = { "chen lin","bei jing",{0, 21,90} };
struct person* p;
a.next = &b;
b.next = &c;
c.next = NULL;
for (p = &a; p != NULL; p=p->next) //for (p = &a; p != NULL; p++) 修改
printf("%s,%s,%d,%d,%d\n", p->name, p->address, p->num[0], p->num[1],p->num[2]); // 修改
//printf("%s,%s,%d,%d,%d\n", p->name, p->address, p->num, p->num,
//p->next);
printf("\n");
return 0;
}
1.struct person要定义在函数外面,不要放到函数里面
2.你在给a,b,c赋初值的时候,没有给next传参
3.for循环里,应该写p=p->next,你这p++,指针都飞了
p++是不对的 应该p=p->next