为什么要改成那样呢 在线等

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:23:56
struct student
{
long num;
char name[20];
char sex;
int age;
struct student *next;
};

printf("%-5d%-5s%-5c%-5d\n",p->num,p->name,p->sex,p->age);
输出的name 为什么不能用name[20]来代替呢?

name[20]存在,只是不知道是什么了。name[XX]是一个字符,如果你想用name[XX]来打印,你必须要用循环了。

p->name是字符串的开始地址,这样输出才从第一个字符输出,name[20]这个不存在,别看定义char name[20]; 是它,他只是代表有20个字符空间,数组从name[0]开始,所以最多到name[19].