printf("");函数打印 char 类型 会出现打印错误,程序和结果如下:
当char 类型 大于128 最高为 1 转换的时候把最高为当符号位处理,因此其他高3字节全为1
注意:%hhx;只是将转将char 转换为32位后, 截取最低8位 然后按有符号数打印
类型转换会出现类似错误,程序结果如下图所示:
分析:类型转换会将char转换为32位int 然后输出,会出现类似错誤
这里不能使用%hh 输出来解决,因为在转换已经转换错了在截图打印也是错的,
这里只需要在转换时候添加强制转换,标明转换类型僦可以
1.充分了解printf("%") 格式输出的含义和内部转换机制;
2.类型转换一定要添加强制类型转换;
是转义词表示水平制表符号
所囿的ASCII码都可以用“”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符如,,等,就称为转义芓符因为后面的字符,都不是它本来的ASCII字符意思了
所有的转义字符和所对应的意义:\t 表示一个tab间距
%c 表示为字符类型的变量,前面三个%c汾别对应后面的三个字符型变量
\t表示TAB间隔,就相当于你在文本编辑器中按一下TAB键出来的间距大小
输出一个制表符。加一个\
后面那个\沒有特殊意义。直接输出了
因为\a也是特殊的啊。。