整理编辑:编程小哥巴克Buck
C语言1.基本数据类型、运算符、表达式2.常用输入输出3.流程控制4.数组5.指针6.函数7.构造数据类型8.指针高级9.函数高级10.内存管理1.基本数据类型1.1整数类型(0正1负)所有整数类型都分为:有符号类型(signed)和无符号类型(unsigned) short a; //默认为有符号类型 short a; == signed short a; unsigned short a; //无符号类型a unsigned short a = -10;//错误 unsigned short a = 20;//正确short: 类型名 所占内存空间大小 值域范围短整形 2字节 unsigned short 0 - 2^16-1 (65535) signed short -2^15 - 2^15-1(32767) int: 类型名 所占内存空间大小 值域范围 整形 4字节 unsigned int 0 - 2^32 -1 signed int -2^31 - 2^31 -1long: 类型名 所占内存空间大小 值域范围: 长整型 4字节 unsigned long 0 - 2^32 -1 signed long -2^31 - 2^31 -1 char: 类型名 所占内存空间大小 值域范围: 字符型 1个字节 unsigned char: 0 - 255 signed char: -128 - 127 char ch = 'A'; ASCII码表:编码标准 字符 -> 数字 (long long int是8字节)后面的ull只是表示数据类型,并不是字符ull字符型: 0 - 31 无法在终端上显示32 - 127 可以在终端上显示char类型其实仍然为int类型,因为字符对应的ASCII码仍然是数字char ch = 27;printf("%c", ch); 会显示乱码 '0' 字符 0 整形 char ch = '0'; ch:0011 0000 %c:显示字符0 char ch = 0; ch:0000 0000 %c:无任何显示'\0' 0'0' 48'A' 65'a' 97练习:将一个字母的大写形式变为小写形式类型的扩展与截断: 扩展:低长度数据类型赋值给高长度类型需扩展 无符号类型:高位扩0 有符号类型:高位扩符号位(正数扩0 负数扩1) 截断:高长度数据类型赋值给低长度数据类型需截断 有符号、无符号:直接获取对应低位数据 char ch = 555; printf("ch = %d\n", ch); (编译报错,char型的取值范围为-128~127,255超出范围)类型转化问题解题思路:数 -> 内存二进制数 -> 打印的结果1.2浮点数类型浮点数类型都为有符号类型,没有无符号类型的概念 float 单精度浮点数类型(4字节)double 双精度浮点数类型(8字节) float a = 3.1415; double b = 3; printf("a = %f\n", a); printf("a = %lf\n", b);1.3缺省类型void:用来修饰指针、函数参数、函数返回值等 表示类型缺省void a; //错 1.4泊尔类型bool a;(1字节)(bool类型即为逻辑类型,只有真和假两个值)值域:true(1) false(0)C语言中非0值表示逻辑真值, 0值表示逻辑假值a = 3 > 5;a为bool类型的话,a值此时为0;bool a;a = 5;printf("a = %d\n", a);a值此时为11.5类型转换1.显式转化(强制类型转化) float a = 3.1415 int b = 3; int c = 0; c = (int)a + b; 2.隐式转化 char、short -> int int、long -> long signed、unsigned -> unsigned int、float -> double float、double -> double计算机五大基本部件:运算器、控制器、存储器、输入设备、输出设备。复制代码