C语言结构体变量问题?

STU 不是结构体变量吗?那STU n什么意思?没看懂。跪求大神解释一下

您好,很高兴回答您的问题。
在c语言中,有一种特殊的类型,就是结构体类型,这是构造类型的一种,也就是由若干个基本类型组合构成的特殊类型。
结构体类型与其他的基本类型一样,要先定义再使用。那么定义分成两部分,一个是定义结构,也就是包含哪些内容;另一个就是定义类型,表示用来具有这个类型的变量。
您的程序中,STU就是定义结构,t就是具有这种类型的数组,n就是具有这种类型的变量。两者是不同的概念,需要区别开来。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-11

    前面还有个typedef,是对student 结构类型定义一个别名。

    typedef struct student {

    long sno;

    char name[10];

    float score;

    }STU;

    struct student{

                           long sno;

                           char name[10];

                            float score;

                           }STU;

 以上两种写法 功能是不一样的,你描述的应该是第二种用法。

 上面的第一种写法最前面多了一个typedef 关键字。

  typedef 最常用的就是对一个基本数据类型 定义一个别名

  例如:typedef int INT;

            typedef short BOOL;

            typedef unsigned WORD;

===================================================

我描述的不够详细,如有遗漏 欢迎继续提问。

本回答被提问者采纳
第2个回答  2021-03-10
STU不是变量, 是结构体类型的名称, STU是类型, 相当于int的意思

STU n; 表示定义一个类型为STU的变量n
一般来说, 定义这种结构体类型的名称习惯上用大写表示, 较少看到变量名为全部大写
第3个回答  2021-03-11
前面的定义语句:
typedef struct student
{……
}STU;
定义了一个结构体变量类型STU,它不是变量名,如同int是整型数的变量类型的名字一样,int不是变量名,不能用int=3。
如果要定义一个整型变量n,可以用:
int n;语句。
同理,要用到STU型的变量n,可以使用STU n;。
需要注意,如果定义语句前面没有typedef,例如:
struct student
{
……
}STU,
则,STU是一个变量名,可以赋值了。当然,需要这种类型的其他变量时,可以用:
struct student m;
来定义。
第4个回答  2021-03-10
STU是结构类型,不是结构变量
相似回答