c语言基础结构体常犯错误,【C语言基础】结构体数组的易错问题

今天在学习结构体数组的时候,自己写了一份代码

#include

struct Student {

//年龄

char *name;

//编号

char *id;

//年龄

unsigned age;

};

int main(){

struct Student students[100] = {

{"小明","15061",11},

{"小红","15062",11},

{"小童","15063",10}

};

for (int i = 0; i

printf("%s\t%s\t%d\n",students[i].name,students[i].id,students[i].age);

}

return 0;

}

编译时提示了以下错误

a.c:19:47: error: use of undeclared identifier 'Student'; did you mean

'students'?

for (int i = 0; i

^~~~~~~

students

a.c:13:20: note: 'students' declared here

struct Student students[100] = {

后来找啊找找啊找,找到大脑瞬间爆炸,发现是因为sizeof这个函数在获取结构体类型大小时,需要在结构体名前加上 struct修饰,

所以正确的代码应该为:

#include

struct Student {

//年龄

char *name;

//编号

char *id;

//年龄

unsigned age;

};

int main(){

struct Student students[100] = {

{"小明","15061",11},

{"小红","15062",11},

{"小童","15063",10}

};

for (int i = 0; i

printf("%s\t%s\t%d\n",students[i].name,students[i].id,students[i].age);

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值