首页 > 代码库 > C语言学习笔记--enum和sizeof关键字
C语言学习笔记--enum和sizeof关键字
1.enum关键字
C语言中enum关键字用来定义枚举类型
(1)enum 是 C 语言中的一种自定义类型
(2)enum 值是可以根据需要自定义的的整型值
(3)第一个定义的 enum 值默认为 0
(4)默认情况下的 enum 值是在前一个定义值的基础上加 1
(5)enum 类型的变量只能取定义时的离散值
enum Color{ GREEN, //默认 GREEN==0; RED= 2, //自定义 RED==2; BLUE //默认情况,是在前一个的基础上加 1,即 BLUE==3};enumColor c =GREEN;//定义 c 变量,并初始化为 GREENprintf("%d\n",c);
enum 中定义的值是 C 语言中真正意义上的常量 。在工程中 enum 多用于定义整型常量
#include <stdio.h>enum //无名枚举,用于定义常量{ ARRAY_SIZE = 10 //定义数组大小,ARRAY_SIZE 是常量,运行时无法改变};enum Color{ RED = 0x00FF0000, GREEN = 0x0000FF00, BLUE = 0x000000FF //注意,后面没分号};//打印,参数为枚举类型void PrintColor(enum Color c){ switch( c ) { case RED: printf("Color: RED (0x%08X)\n", c); break; case GREEN: printf("Color: GREEN (0x%08X)\n", c); break; case BLUE: printf("Color: BLUE(0x%08X)\n", c); break; }}//初始化数据void InitArray(int array[]){ int i = 0; for(i=0; i<ARRAY_SIZE; i++) { array[i] = i + 1; }}void PrintArray(int array[]){ int i = 0;for(i=0; i<ARRAY_SIZE; i++) { printf("%d\n", array[i]); }}int main(){ enum Color c = GREEN; //定义变量 c 并初始化为 GREEN int array[ARRAY_SIZE] = {0}; PrintColor(c); InitArray(array); PrintArray(array); return 0;}
2.C语言中的sizeof关键字
(1)sizeof 是编译器的内置指示符
(2)sizeof 用于计算类型或变量所占的内存大小
(3)sizeof 的值在编译期就己经确定,在编译过程中所有的 sizeof 将被具体的数值所替换 ,程序的执行过程与 sizeof 没有任何关系 。
#include <stdio.h>int f(){ printf("I like programming!\n"); return 0;}int main(){ int var = 0; int size = sizeof(var++); //该行在编译期被替换为 int size =4; //所以运行时,不存在 var++之类的代码了 printf("var = %d, size = %d\n", var, size); size = sizeof(f()); //该行在编译期被替换为 size = sizeof(函数的返回值类型) =4; //即最终代码没有 f()函数的调用,也就不会输出 f()里面的 printf printf("size = %d\n", size); return 0;}
C语言学习笔记--enum和sizeof关键字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。