C语言中的字符串是一串以NUL字符结尾的零个或多个字符,字符串通常存储在字符数组中。
由于NUL字节是用于终结字符串的,因此,在字符串内部不能有NUL字节,之所以选择用NUL作为字符串的终止符是因为它是一个不可打印的字符。
字符串的NUL结束符并不是显示的出现在字符串中,而是每个字符串的最后都有一个隐式的NUL结束符。
字符串是一个常量,无法对其进行修改。在程序中使用字符串常量会生成一个“指向字符的常量指针”,当一个字符串常量出现在一个表达式中,表达式所使用的值就是这些字符串所存储的地址,而不是这些字符本身。你可以把字符串常量赋值给个指向字符的指针,这个指针指向这些字符所存储的地址,但是你不能把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。