枚举比用好些,因为枚举有int类型,在C 语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的,既然枚举也是一种数据类型,所以它和基本数据类型一样也可以对变量进行声明,枚举也可以用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明
};intmain(){enumColorc=RED;printf("Sizeof enum: %d\\n",sizeof(enumColor));//输出为4或8字节return0; } 需要注意的是,枚举类型在内存大小上可能会因为编译器实现和程序运行的机器体系结构所影响。
struct Student{int num;char name[20];char sex[5];int age;};int main(){struct Student s1 = { 114202,"张三","男",18 };printf("%d %s %s %d\n", s1.num, s1.name, s1.sex, s1.age);return 0;}//结构体嵌套初始化struct Node{int data;struct Point p;struct Node* next;}n1 = {1...
struct{int a;char b;float c;}x;//注意在结构体的尾部我们是可以创建一个全局变量X的struct{int a;char b;float c;}a[20],*p;//也可以创建一个元素均为结构体的数组,还创建了一个结构体类型的指针,//通过这个指针我们可以访问指针所维护的成员变量abc等p=&x;//在上面代码的基础上,下面的代码合法吗?
#include <stdio.h> int main(void) { // 查看short内存占用 printf("short占用内存大小 = %lu\n", sizeof(short)); // 查看int内存占用 printf("int占用内存大小 = %lu\n", sizeof(int)); // 查看long内存占用 printf("long占用内存大小 = %lu\n", sizeof(long)); // 查看long long内存占用 ...
int a; char b; }; 1. 2. 3. 4. 2、共用体与结构体的区别: 结构体类似于一个包裹,结构体中的成员彼此是独立存在的,分布在内存的不同单元中,他们只是被打包成一个整体叫做结构体而已;共用体中的各个成员其实是一体的,彼此不独立,他们使用同一个内存单元。
int i; char ch; double d; }s; struct { char c; int i; char ch; double d; }* ps; ❓同学们结合上述代码,觉得下列代码可以正常执行吗 int main() { ps = &s; // ? return 0; } 答案是不行哦 ➡️因为编译器会把上面的两个声明当成完全不同的两个类型。
其中,enum是关键字,是必须的。DAY是枚举名,可有可无,这个名字是自己定义的;MON=1, TUE, WED, THU, FRI, SAT, SUN是枚举成员。 枚举成员的值是根据前一个成员的值递增1,即上面枚举定义等价于: enum DAY { MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6, SUN=7 ...
强类型枚举具有更好的类型安全性,不同枚举之间的值不能直接比较或赋值,除非显式转换。enumclassColor { Red, Green, Blue};Color myColor = Color::Red;// 下面这行代码会导致编译错误,因为Color和int之间没有隐式转换// int colorValue = myColor;枚举的底层类型 默认情况下,枚举类型的底层类型...