转义字符
转变了它原来的意思
首先我们来看一段代码
假如我们想打印c;\test\test.c
我们尝试用
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
printf("c;\test\test.c");
return 0;
}
结果发现打印出来是
为什么呢,这就是因为转义字符的存在
我们来了解一下常用的转义字符:
\a 警报/响铃(BEL)
\b 退格(BS),将当前位置移动到前一列
\f 换页(FF),将当前位置移动到下一页开头
\t 水平制表符(HT)(即跳到下一个TAB的位置)
\v 垂直制表(VT)
\n 换行符(LF),将当前位置移动到下一行开头
\r 回车符(CR),将当前位置移动到本行开头
\’ 代表一个单引号字符
\” 代表一个双引号字符
\? 代表一个问号,在书写连续多个文号时使用,防止他们被解析成三字母词
\\ 代表一个反斜线字符"\"
特殊转义字符:
\ddd ddd表示1-3个八进制的数字,打印出来的是对应ASCII值对应的字符
\xdd dd表示2个十六进制数字,打印出来的是对应ASCII值对应的字符
我们来解释一下这个特殊的转义字符(%c代表打印字符)
\081打印出是1,为什么是1,是因为1所对应的ASCII码值是65(将8进制转换成10进制)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
printf("%c\n",'\101');
return 0;
}
ASCII码表
因为计算机只能识别存储2进制,而我们输入的很多内容都是一个字符,比如A,B
所以我们将这些字符编号
比如A-65
B-66
于是就创建了ASCII码表(每一个字符都有一个值)
接下来我们再来看一下下面这个字符串的长度
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
printf("%d\n",strlen("c:\test\328\test.c"));
return 0;
}
这个字符串长度为14,因为转义字符算一个长度,而\328中的8只能单位算一个字符,因为8进制没有8,所以\328是两个字符,最终结果就是14
注释:
用来解释复杂的代码
两种注释方法
1,//,一般用这种注释方法,是c++引用到c的一种注释方式
2,/**/ ,是c的注释方式,不支持嵌套注释
比如我们想注释整段代码,但是因为它以/*开始,*/结束,所以后面一段注释不掉
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
/*
int main()
{
printf("%d\n", strlen("c:\test\328\test.c"));
/*
int a=0;
*/
return 0;
}
*/