在C的入门课程中,我了解到,在存储字符串的同时,在字符串末尾存储了空字符\0
。但是,如果我想打印一个字符串,请说printf("hello")
,尽管我通过以下语句发现它并没有以\0
结尾:
printf("%d", printf("hello")); Output: 5
但是这似乎不一致,据我所知,像字符串这样的变量存储在主存储器中,我想在打印某些内容时它也可能也存储在主存储器中,那为什么会有区别呢?
在C的入门课程中,我了解到,在存储字符串时,其末尾以空字符\ 0存储。但是,如果我想打印一个字符串,请说printf(“ hello”),尽管我是...”
空字节标记字符串的结尾。它不计入字符串的长度,打印字符串时也不打印。
您的假设是错误的。您的字符串确实以\0
结尾。
printf
返回打印的字符数。 '\0'
未打印-仅表示该字符串中不再有字符。
在C中,所有文字字符串实际上都是字符数组,其中包括空终止符。