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= , //自定义 RED==2;
BLUE //默认情况,是在前一个的基础上加 1,即 BLUE==3
};
enumColor c =GREEN;//定义 c 变量,并初始化为 GREEN
printf("%d\n",c);
enum 中定义的值是 C 语言中真正意义上的常量 。在工程中 enum 多用于定义整型常量
#include <stdio.h>
enum //无名枚举,用于定义常量
{
ARRAY_SIZE = //定义数组大小,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 = ;
for(i=; i<ARRAY_SIZE; i++)
{
array[i] = i + ;
}
}
void PrintArray(int array[])
{
int i = ;for(i=; i<ARRAY_SIZE; i++)
{
printf("%d\n", array[i]);
}
}
int main()
{
enum Color c = GREEN; //定义变量 c 并初始化为 GREEN
int array[ARRAY_SIZE] = {};
PrintColor(c);
InitArray(array);
PrintArray(array);
return ;
}
2.C语言中的sizeof关键字
(1)sizeof 是编译器的内置指示符
(2)sizeof 用于计算类型或变量所占的内存大小
(3)sizeof 的值在编译期就己经确定,在编译过程中所有的 sizeof 将被具体的数值所替换 ,程序的执行过程与 sizeof 没有任何关系 。
#include <stdio.h>
int f()
{
printf("I like programming!\n");
return ;
}
int main()
{
int var = ;
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 ;
}
参考资料:
www.dt4sw.com
http://www.cnblogs.com/5iedu/category/804081.html
C语言学习笔记--enum和sizeof关键字的更多相关文章
- C语言学习笔记--struct 和 union关键字
1.struct关键字 C 语言中的 struct 可以看作变量的集合struct中的每个数据成员都有独立的存储空间. 结构体与柔性数组 (1)柔性数组即数组大小待定的数组 (2)C 语言中可以由结构 ...
- C语言学习笔记--const 和 volatile关键字
1.const关键字 (1)const 修饰的变量是只读的,它不是真正的常量,本质还是变量,只是告诉编译器不能出现在赋值号左边! (2)const 修饰的局部变量在栈上分配空间 (3)const 修饰 ...
- Go语言学习笔记(1)——顺序编程
Go语言学习笔记这一堆主要是<Go语言编程>(人民邮电出版社)的读书笔记.中间会穿插一些零碎的点,比如源码学习之类的.大概就是这样吧. 1. 顺序编程 1.1 变量 变量的声明: var ...
- GO语言学习笔记(一)
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...
- Go语言学习笔记十三: Map集合
Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- Go语言学习笔记十: 结构体
Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...
- Go语言学习笔记三: 常量
Go语言学习笔记三: 常量 定义常量 常量就是在声明后不能再修改的量. const x int = 100 const y string = "abc" const z = &qu ...
- Go语言学习笔记二: 变量
Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...
随机推荐
- python 发送邮件的两种方式【终极篇】
一,利用python自带的库 smtplib简单高效 from email.mime.multipart import MIMEMultipart from email.mime.text impor ...
- 深入理解利用new创建对象的执行过程以Person p=new Person("张三",20);为例
代码如下: class Person { private String name="haha"; private int age; private static String co ...
- nc命令用法
root@10.1.1.43:~# nc -h[v1.10-38]connect to somewhere: nc [-options] hostname port[s] [ports] ... li ...
- nginx location 语法
location 语法location 有”定位”的意思, 根据Uri来进行不同的定位.在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上.比如, 碰到.p ...
- TP里的关联查询
$res = $db->join('b on a.ex_id = b.pe_eid')->select(); 注意:这里的表a.表b需要带表前缀
- 算法(Algorithms)第4版 练习 1.5.13
package com.qiusongde; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; pu ...
- js混合计算字符串字节长度
js混合计算字符串字节长度 function getBt(str) { ) { var char = str.match(/[^\x00-\xff]/ig); : char.length); } el ...
- 仿联想商城laravel实战---6、自建配置文件和缓存(如何读取自己创建的配置文件的信息)
仿联想商城laravel实战---6.自建配置文件和缓存(如何读取自己创建的配置文件的信息) 一.总结 一句话总结: config()及相应的方法 1.前端插件选择好了,后端开发超级省力? 比如多图上 ...
- Python基础-修改excel中内容
from xlutils.copy import copy import xlrd import os #1.打一要修改的excel #2.再打开另一个excel #3.把第一个excel里面修改东西 ...
- php mysqli_get_server_version()函数
php mysqli_get_server_version()函数以整数形式返回MySQL服务器版本. 本文章想大家介绍mysqli_get_server_version 函数的基本使用方法和实例,需 ...