解答:C语言中结构体的定义中,后面跟的“结构体变量”到底是什么?

这个问题我在网上没看到很清楚的回答,w3cschool里也没讲清楚,所以就整理了一下自己的理解,回答了一个百度知道的提问。贴上链接:https://zhidao.baidu.com/question/557784323.html?hideOtherAnswer=true&newAnswer=1)

把答案附如下,如有问题请指教


// 情况一:student作为结构体的标识符 常规操作
struct student{
    char name[20];
    int num;float math,yuwen,wuli,mean;
};
struct student st1, st2, st3;

/**********************分割线*************************/

// 情况二:和上面同样的情况,不过我在定义结构体的时候顺便把st1 st2 st3给声明了。
// 这里后面跟的结构变量st1 st2 st3就是新声明的三个student的实例而已。
struct student{
    char name[20];int num;
    float math,yuwen,wuli,mean;
} st1, st2, st3;

/**********************分割线*************************/

// 情况三:下面这两个例子用了typedef关键字。简单来说,后面的“st”可以代
// 替"struct student"来进行声明。所以下面两种情况自然是等价的。
// 实际上这里后面跟的并不是“结构变量”,这就是typedef的使用格式罢了,
// 所以虽然看起来很像,实际上和上面的情况没什么关系。
typedef struct student{
    char name[20];int num;
    float math,yuwen,wuli,mean;
} st;
struct student st1, st2, st3;

/**********************分割线*************************/

typedef struct student{
    char name[20];int num;
    float math,yuwen,wuli,mean;
} st;
st st1, st2, st3;

另外可参考:

https://zhidao.baidu.com/question/543939532.html

https://blog.csdn.net/minyangchina/article/details/4492575


你可能感兴趣的:(解答:C语言中结构体的定义中,后面跟的“结构体变量”到底是什么?)