逃逸字符与类型转换
<1>逃逸字符的介绍
————用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟上另个字符,这两个字符合起来,组成了一个字符
举例:
printf("请分别输入身高的英尺和英寸,""如输入"5 7"表示5英尺7英寸:");
这个字符在语句中表达的就是" "的含义,使用这种表达方式的原因是,在双引号中不能直接出现双引号,否则他认为相邻的两个双引号之间是一个字符串
<2>逃逸字符及其意义
(1)逃逸字符的类型
\b-回退一格;(通常做的是回退但不删除)————\r-回车———— \n-换行————\t-到下一个表格位————\-反斜杠本身————'-单引号———— "-双引号;
注意:在不同的编译器中,使用逃逸字符所产生的结果并不一定相同,这是因为不同编译器的shell对不同的工具字符(逃逸字符属于控制字符)做出不同的反应。
(2)由\t引申到制表位
- 每行的固定位置(常用于缩进);
- 一个\t使得输出从下一个制表位开始;
- 用\t才能使得上下两行对齐;
<3>类型转换
(1)自动类型转换
出现情况:当运算符的两边出现不一致的类型,会自动转换成较大的类型(指的是表达的数的范围更大);
1)特殊情况:
- 对于printf,任何小于int的类型会被转换为int,float会被转换成double;
- 但是scanf不会,例如要输入short,需要%hd;
(2)强制类型转换
————把一个变量强制转换成另一个类型(通常是大转小)
格式:(类型)值-例如(int)10.2
注意:在此处应该注意安全性,小的变量不能总表达大的量——例如short32768
以代码为例解释:
#include<stdio.h>
int main(){
printf("%d",(short)32768);
return 0;
}
得出的结果为-32768,因为32768超出了short最大能表示的范围32767,同理,若将其转换为(char)32768答案也不正确,得到的结果为0,因为char是8个bit的,而32768是10…0(15个0);