首页 热点资讯 义务教育 高等教育 出国留学 考研考公

struct student {……}STU; STU stu[N]; 大写的STU表示结构名称为何下排重复一遍STU,后又是小写的stu?

发布网友 发布时间:2022-04-25 20:44

我来回答

2个回答

热心网友 时间:2023-10-15 01:52

楼上回答不正确。其实这个是错误的。

这一个用法是错误的!

测试平台:Devc++

#include<stdio.h> 
#define N 100
struct student { 
int a; char b; 
}STU; 
int main(){
STU stu[N];
printf("aa");
return 0;
}

报错!

这样才是对的!

#include<stdio.h> 
#define N 100
typedef struct student { 
int a; char b; 
}STU; 
int main(){
STU stu[N];
printf("aa");
return 0;
}

为什么?typedef的意思就是把后面那个东西换一个名字!例如第二个程序typedef就是把

struct student {
int a; char b;
}换一个名字叫做STU。那么后面写STU A[N];

就是对的相当于:

struct student { 
int a; char b; 
}A[N];

如果不加typedef的话,那么

struct student {
int a; char b;
}STU;就相当于定义了一个STU!,然后后面写STU A[N];就是错误的。

追问谢谢大神,辛苦,我懂了,采纳

热心网友 时间:2023-10-15 01:52

STU是你已经定义的数据结构,就像int一样,stu是变量名,就比如int stu[N]追问struct student {……}; struct student stu[N]; 与上面功能是一样的吗?只是简化为STU 了而已后面用起来方便?

追答嗯 上面那个回答对的 我没有注意看 得加个typedef 直接struct student {...} stu[N]也可以

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com