字符串的结束符“\0”到底是什么

一直对字符串的结束符"\0"的具体意义感到困惑,今天实际测试了一下,,最终我找出来了答案。

#include <cstdio>#include <cstring>#pragma warning(disable:4996)#define MAXN 2000int 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;}

”到底是什么” src=”http://img.blog.csdn.net/20150727174946208″ >

通过以上程序,我们不难发现“\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码表:

”到底是什么” src=”http://img.blog.csdn.net/20150727174255288?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center” >

另外附上一段程序证明\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;}

”到底是什么” src=”http://img.blog.csdn.net/20150728103514217?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center” >

版权声明:本文为博主原创文章,未经博主允许不得转载。

人,都有不能称心如意的时候,都有愿望落空的窘迫,

字符串的结束符“\0”到底是什么

相关文章:

你感兴趣的文章:

标签云: