CDay03

打印 上一主题 下一主题

主题 1002|帖子 1002|积分 3006

字符类型

编码

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引入布尔类型,定义在中
布尔值转换为整数


  • false --> 0
  • true --> 1
整数转换为布尔值


  • 0 --> false
  • 非0 --> true
类型转换

1、为什么要进行类型转换?
答:计算机硬件做计算时,要求操作数有相同的位数(相同类型)
2、什么时候会发生类型转换?
答:给定的类型和需要的类型不一致时,就会发生类型转换
3、如何进行类型转换?
答:隐式类型转换、显式类型转换
隐式类型转换


有符号数与无符号数进行运算时,有符号数会隐式转换为无符号数,故不要将有符号数和无符号数一起参与运算!
显式类型转换

格式:(目标类型) 表达式;
示例:
  1. // 1.计算浮点数的小数部分
  2. double d = 3.14159;
  3. double fraction = d - (int)d;
  4. // 2.提高代码可读性
  5. float f = 3.14f;
  6. //...
  7. int i = (int)f;    //注意这里发生了类型转换,可能会出现问题
  8. // 3.对类型转换进行更精确的控制
  9. int dividend = 4, divisor = 3;
  10. double quotient = 0;
  11. quotient = (double)dividend/divisor;
  12. // 4.可以避免溢出
  13. long long a = 24 * 60 *60 * 1000;
  14. long long b = (long long)24 * 60 *60 * 1000 * 1000 * 1000;
  15. printf("b/a = %lld\n", b / a);
复制代码

sizeof运算符

作用:计算某一类型数据所占的字节数
格式:sizeof(类型)
注意:sizeof是在编译阶段进行运算的
typedef

作用:给类型起别名
格式:typedef 类型 别名;
为什么要给类型起别名?
答:提高代码可读性、提高代码可移植性
注意:
  1. #define int BOOL  //预处理后就没有别名了,编译器无法给出精确的报错信息
  2. typedef int BOOL;
复制代码
总结



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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

惊落一身雪

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表