'\ 0'和C中的printf()

问题描述 投票:0回答:3

在C的入门课程中,我了解到,在存储字符串的同时,在字符串末尾存储了空字符\0。但是,如果我想打印一个字符串,请说printf("hello"),尽管我通过以下语句发现它并没有以\0结尾:

printf("%d", printf("hello"));

Output: 5

但是这似乎不一致,据我所知,像字符串这样的变量存储在主存储器中,我想在打印某些内容时它也可能也存储在主存储器中,那为什么会有区别呢?

在C的入门课程中,我了解到,在存储字符串时,其末尾以空字符\ 0存储。但是,如果我想打印一个字符串,请说printf(“ hello”),尽管我是...”

c stdout
3个回答
3
投票

空字节标记字符串的结尾。它不计入字符串的长度,打印字符串时也不打印。


2
投票

您的假设是错误的。您的字符串确实以\0结尾。


2
投票

printf返回打印的字符数。 '\0'未打印-仅表示该字符串中不再有字符。


2
投票

在C中,所有文字字符串实际上都是字符数组,其中包括空终止符。

© www.soinside.com 2019 - 2024. All rights reserved.