C枚举,以及枚举和结构体的不同
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C枚举,以及枚举和结构体的不同相关的知识,希望对你有一定的参考价值。
枚举实际意义跟汉语意义没有多少相似的地方,而且容易让人想起穷举。
学完枚举基本就把几个基本的数据类型学完了哈
穷举……呸,枚举和结构体的结构类似
struct stuent { int age; float height; };
enum{ FIR, SCD, THD };
但不同很多,如下
1,定义结构体是定义一个数据类型,之后,声明的是结构体变量,结构体变量本身只能被赋值于另一个结构体变量,而且两个结构变量必须是同一种结构,但结构变量之内的变量是可以被赋值的。而且结构体变量声明所用的标示符并不会占用变量的标示符的空间,但会和共用体,枚举,结构体占用一个空间。
struct student amy; int amy =3; printf("amy‘ age is %d\n,amy is %d\n ",amy.age, amy);
这是可行的
枚举也是定义一个数据类型,但声明的枚举变量就和结构变量没有多少相似点了。枚举变量是整形变量,也可以被赋值,(这和百度上的不同)
枚举变量声明所用的标示符会占用变量的标示符的空间。可能是储存类不同的话会覆盖,储存类相同会冲突吧(通常这时,code block会给我一个error)。
2,枚举的成员只能是整形变量,所以不用声明成员的数据类型,但结构体需要声明,因为结构体的成员可以是变量,数组,指针,结构体,枚举变量,共用体也可以。
3,枚举,结构体都是定义数据类型,但结构体定义后并不会起实际作用,只有在声明结构体变量后才有作用。
枚举定义后其成员所用的标示符会占用变量的标示符的空间。而且就算没有定义枚举变量,也可以把其成员拿出当来常量使用。
4,结构体在C语言中所起到的作用也并不在结构体变量上,而是结构体变量的内部成员,结构变量几乎没有任何作用。
枚举中主要是枚举常量,但变量也依然可以当一个普通的变量使用。
以上是关于C枚举,以及枚举和结构体的不同的主要内容,如果未能解决你的问题,请参考以下文章