国内摄影作品网站,手工制作迷你抓娃娃机,管理咨询公司好不好做,官方网站建设 就问磐石网络专业目录
枚举
typedef
位运算
堆上的空间 枚举 一个一个列举出来#xff0c;是指将变量的值一一列举出来#xff0c;变量的值只限于列举出来的值的范围内。
作用#xff1a; 1、为了提高代码的可读性 2、提高代码的安全性
枚举类型
基本语法#xff1a; enum 枚举名 { …目录
枚举
typedef
位运算
堆上的空间 枚举 一个一个列举出来是指将变量的值一一列举出来变量的值只限于列举出来的值的范围内。
作用 1、为了提高代码的可读性 2、提高代码的安全性
枚举类型
基本语法 enum 枚举名 { 列举各种值 } 示例代码
enum fire{LITTLE_FIRE,MIDDILE_FIRE,LARGE_FIRE, //最后一个变量的逗号可以省略
};
注
1、表示定义了一种枚举类型
2、枚举中逐个列举的值默认是从 0 开始的 如果有给定的值后续没有给值的变量依次加1
3、枚举类型的本质实际是int 类型数组
4、枚举的变量与整型类型的变量通用
5、与宏定义对比 区别 ①使用阶段不同 宏定义预处理阶段 枚举编译阶段要检查语法运行阶段参与代码的运行 ②可读性 两者都提高了可读性但枚举更能说明相关性的一些值间关系
typedef
typedef ---- typedef define 本意不是定义类型给已有的类型起别名提高代码可读性 typedef int INT; INT a 10; //此时定义的的是一个int型的整型变量赋值10 说明
(1) typedef 可以声明各种类型名但不能用来定义变量。 (2) typedef 只是对已经存在的类型增加一个类型名而没有创造新的类型。 (3) 使用 typedef 有利于程序的通用与移植。 位运算
可以直接操作二进制位 --- 控制硬件操作系统某些文件信息存储通常也是用位来描述的 与运算 --- 一假则假 //常用于清0
| 或运算 --- 一真则真
~ 取反 --- 真假相对
^ 异或 --- 相同为0不同为1 //可实现数据加密数据交换 左移 --- an 表示将 a 这个数据左移 n 位 注最低位补 0 右移 --- an 表示将 a 这个数据右移 n 位 算术右移看符号位和数据类型 如果是有符号类型的数据右移时最高位补的是符号位 如果是无符号类型的数据右移时最高位补 0
注意浮点数不能做位运算
例定义两个整型变量分别赋值3、5以二进制进行位运算的过程和结果 使用位运算实现数据左移循环
#includestdio.hint main(int argc, const char *argv[])
{int a 0xcd;int i 0;for(i 0;i 1;i){if(a 0x80000000){a a1;a a1;}else{a a 1;}}printf(%#x\n,a);return 0;
}运行结果
0x19a
堆上的空间
void *malloc(size_t size);
功能在堆上开辟一块空间
参数size 表示申请的空间大小单个字节
返回值 成功返回申请到内存空间的地址 失败返回NULL
void free(void *ptr);
功能释放之前申请的堆上的空间
参数ptr 一定是之前申请到堆上的空间的地址
free 释放后的空间 1、一般不再使用 2、指向这块空间的指针是野指针 3、free 之后对应空间上的内容也不要使用
注意 1、malloc 和free 成对出现 2、free 只是释放了空间但是在这块空间上的数据并不会清零。 3、不能多次free
#includestdio.h
#includestdlib.h //函数头文件int main(int argc, const char *argv[])
{int a[5];int i 0;int *p malloc(sizeof(int)*5); //明确要开辟的堆上空间大小for(i 0;i5;i){scanf(%d,pi); //向数组中输入数据值}printf(-------------\n);for(i 0;i 5;i){printf(%d ,*(pi));}puts(\n);free(p); //释放申请的堆上的空间return 0;
}