字符类型
编码
char类型采用ASCII编码,占1个字节,只用了7位(最高位是0),能表示128个字符。

需要记忆的:
- 空字符 '\0' = 0
- ' ' = 32
- '0' = 48
- 'A' = 65
- 'a' = 97
转义序列
字符转义序列

数字转义序列
- 八进制:以 \ 开头,后面最多接三个八进制数
- 十六进制:以 \x 开头,后面接十六进制数
字符处理函数

读写字符类型
- scanf/printf,配合%c来读写,%c匹配一个字符
- getchar()/putchar()
int getchar(void) 函数从 stdin 上读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。
int putchar(int c) 函数把字符输出到 stdout,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。
getchar和putchar的效率远高于printf和scanf,如果只是读写字符数据,建议使用getchar和putchar。
布尔类型
C99引入布尔类型,定义在中
布尔值转换为整数
整数转换为布尔值
类型转换
1、为什么要进行类型转换?
答:计算机硬件做计算时,要求操作数有相同的位数(相同类型)
2、什么时候会发生类型转换?
答:给定的类型和需要的类型不一致时,就会发生类型转换
3、如何进行类型转换?
答:隐式类型转换、显式类型转换
隐式类型转换
 
有符号数与无符号数进行运算时,有符号数会隐式转换为无符号数,故不要将有符号数和无符号数一起参与运算!
显式类型转换
格式:(目标类型) 表达式;
示例:- // 1.计算浮点数的小数部分
- double d = 3.14159;
- double fraction = d - (int)d;
- // 2.提高代码可读性
- float f = 3.14f;
- //...
- int i = (int)f; //注意这里发生了类型转换,可能会出现问题
- // 3.对类型转换进行更精确的控制
- int dividend = 4, divisor = 3;
- double quotient = 0;
- quotient = (double)dividend/divisor;
- // 4.可以避免溢出
- long long a = 24 * 60 *60 * 1000;
- long long b = (long long)24 * 60 *60 * 1000 * 1000 * 1000;
- printf("b/a = %lld\n", b / a);
复制代码
sizeof运算符
作用:计算某一类型数据所占的字节数
格式:sizeof(类型)
注意:sizeof是在编译阶段进行运算的
typedef
作用:给类型起别名
格式:typedef 类型 别名;
为什么要给类型起别名?
答:提高代码可读性、提高代码可移植性
注意:- #define int BOOL //预处理后就没有别名了,编译器无法给出精确的报错信息
- typedef int BOOL;
复制代码 总结

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |