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

32 篇文章 0 订阅

一直对字符串的结束符"\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;
}


  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值