当前位置:C++技术网 > 资讯 > 空字符的三种表示形式,其本质都是0

空字符的三种表示形式,其本质都是0

更新时间:2016-01-04 16:15:48浏览次数:1+次

    在研究一个代码的时候,突然发现我习惯性的使用了_T(''),这是中性的写法。如果换成ASCII版本的写法,也就是C语言默认的写法,就是''。然后学过C语言的你也知道,空字符是'\0'。然后突然感觉,这两种似乎都表示空字符呢?!而之前一直都没有发现呢!
    我以为发犯错了,然后用代码验证了一下,结果发现两个空字符其实都是同一个东西。不知道这种情形你有没有发生过。
    所以,虽然这个知识点简单的不能再简单,然而这种心有余悸的感觉,我似乎经常碰到。也就是突然发现一些相似的知识点联系起来了,然后之前从未主动意识到这些知识点都是相近的。在不同的时候用了不同的表示方式,然而我们却不自知。比如,我在C语言里,一般使用\0作为空字符,在Windows里,我习惯性用空字符''。然后今天却突然发现两个是同一个东西。我还以为我用错了呢。

    我们看看下面一张图:

空字符的三种表示方法图解

【空字符的三种表示方法图解】
    从图中可以看到,字符存储的是字符的编码,空字符的编码值为0。以下三种方法都会给字符赋值为空字符:
char ch='\0';//明确空字符赋值
char ch='';//不指定任何字符,默认为空字符
char ch=0;//以数值0形式传递编码值存入,再按照字符形式解释,就会将编码解释为字符,即空字符

    这是基本的语言的支持,在各种编程环境中可以使用。如果你还没有意识到这三种表示方式,可能在某一天会发现这三个都是一个意思。也就会和老夫一样突然发觉这个“奥秘”,然后心悸不已,因为以为之前的一些代码写错了。实际上,都是对的!