C语言中的'\0',0,NULL,'0'等

    计算机存储字符的时候都是存储的该字符的ASCII码值,所以‘\0’存储在计算机就是0x00,数字0也是0x00,NULL也是0x00。这三个存储的本质是一样的,但是为了更好的区分,应用场景不太相同。字符时用‘\0’,指针是用NULL,0x00很少见,一般直接用0代替,这三个本身是一个东西。

    至于‘0’,就是字符0的ASCII了,查一下ASCII可知,实际存储时那个内存地址的值是48,即0x30。

    所有的数据存储时都会变成十六进制的形式,但是使用时,因为有类型,所以计算机将提取相关内存地址的值并且结合类型去解释。同一个内存单元的值,按照不同类型去解释,会有不同的含义,至于以哪种类型去解释,就看你在编程时如何实现了。


你可能感兴趣的:(C语言,linux,c,NULL,0)