-6ren">
gpt4 book ai didi

c - C 编程中的 sizeof() 行为

转载 作者:行者123 更新时间:2023-12-03 18:36:32 26 4
gpt4 key购买 nike

这是我的程序..

int main(void) {

printf("%lu\n", sizeof(""));

// first if else statement
if(1 > -2) printf("Yes");
else printf("No");

printf("\n");

// second if else statement
if( sizeof("") > -2) printf("Yes");
else printf("No");
}

首先 printf() 为什么它打印 1 作为输出,尽管我传递了一个空字符串?
在第一个 if-else 语句中,我得到了正确的输出 -> 是预期的,但是在第二个 if-else 语句中它打印输出 -> 不,谁能解释一下为什么会发生这种情况?

我的输出是..
1
是的


提前致谢 :-)

最佳答案

C 中的所有字符串都以 \0 空字符结尾。这表示刺结束。

当用 C 编程时,可视化数据实际上如何存储在内存中总是很好的,正如你在这里看到的,“Hello”有 5 个字符长,但是必须给 char 数组提供 6 个字符,以便为这个空字符留出空间。

Sting memory representaion in C

以下是 Bob Jarvis 建议的示例:

enter image description here

至于 sizeof("") > -2 是假的,看看 sepp2k 的回答

关于c - C 编程中的 sizeof() 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61561870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com