我以为发犯错了,然后用代码验证了一下,结果发现两个空字符其实都是同一个东西。不知道这种情形你有没有发生过。
所以,虽然这个知识点简单的不能再简单,然而这种心有余悸的感觉,我似乎经常碰到。也就是突然发现一些相似的知识点联系起来了,然后之前从未主动意识到这些知识点都是相近的。在不同的时候用了不同的表示方式,然而我们却不自知。比如,我在C语言里,一般使用\0作为空字符,在Windows里,我习惯性用空字符''。然后今天却突然发现两个是同一个东西。我还以为我用错了呢。
我们看看下面一张图:
【空字符的三种表示方法图解】
从图中可以看到,字符存储的是字符的编码,空字符的编码值为0。以下三种方法都会给字符赋值为空字符:char ch='\0';//明确空字符赋值
char ch='';//不指定任何字符,默认为空字符
char ch=0;//以数值0形式传递编码值存入,再按照字符形式解释,就会将编码解释为字符,即空字符
这是基本的语言的支持,在各种编程环境中可以使用。如果你还没有意识到这三种表示方式,可能在某一天会发现这三个都是一个意思。也就会和老夫一样突然发觉这个“奥秘”,然后心悸不已,因为以为之前的一些代码写错了。实际上,都是对的!