您的位置:首页 > 编程语言 > C语言/C++

C/C++__字符串的结束符“\0”到底是什么

2015-07-27 17:52 501 查看
一直对字符串的结束符"\0"的具体意义感到困惑,今天实际测试了一下,最终我找出来了答案。

#include <cstdio>
#include <cstring>

#pragma warning(disable:4996)

#define MAXN 2000

int main(int argc, char **argv){
char szFileName[MAXN] = "\0";
//char szFileName[MAXN] = { 0 };

printf("%d %d\n", szFileName[0], '0');
//printf("%d %d\n", szFileName[1], '0');

/*
for (int i = 0; i < argc; i++)
{
strcat(szFileName, argv[i]);
strcat(szFileName, "   ");
}
printf("%s\n", szFileName);
*/
return 0;
}




通过以上程序,我们不难发现“\0”即为转义字符\0,也就是ASCII码表中的第0号。

转义字符表:

所有的转义字符和所对应的意义:
转义字符
意义
ASCII码值(十进制)
\a
响铃(BEL)
007
\b
退格(BS) ,将当前位置移到前一列
008
\f
换页(FF),将当前位置移到下页开头
012
\n
换行(LF) ,将当前位置移到下一行开头
010
\r
回车(CR) ,将当前位置移到本行开头
013
\t
水平制表(HT) (跳到下一个TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一个反斜线字符''\'
092
\'
代表一个单引号(撇号)字符
039
\"
代表一个双引号字符
034
\0
空字符(NULL)
000
\ddd
1到3位八进制数所代表的任意字符
三位八进制
\xhh
1到2位十六进制所代表的任意字符
二位十六进制
注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换

下面为ASCII码表:



另外附上一段程序证明\0即为ASCII码中的0

#include <cstdio>
#include <iostream>

using namespace std;

int main(){
char a[20] = "Hi,Kemeng~";

printf("%s\n", a);
a[2] = 0;
printf("%s\n", a);

return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: