gpt4 book ai didi

与初始化 char[] 混淆

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:01 24 4
gpt4 key购买 nike

请看下面的代码:

char h[256];
h[0]=NULL;
if(h!=NULL)
{
printf("It doesn't show NULL\n");
}
else
{
printf("It shows NULL\n");
}

还有以下内容:

char h[256];
if(h!=NULL)
{
printf("It doesn't show NULL\n");
}
else
{
printf("It shows NULL\n");
}

还有以下内容:

 char h[256];
h[0]='\0';
if(h!=NULL)
{
printf("It doesn't show NULL\n");
}
else
{
printf("It shows NULL\n");
}

在每种情况下,char* h 都没有 NULL。为什么会这样?是不是应该有 NULL 因为我没有在那里存储任何东西?如果不是这种情况,我如何确保它只包含 NULL?

最佳答案

h[0]h 不同。 h[0]是数组中的第一个字符; h 是数组本身(在这种情况下会衰减为指针)。

试试这个:

char h[256];
h[0]=NULL;
if(h[0]!=NULL)
{
printf("It doesn't show NULL\n");
}
else
{
printf("It shows NULL\n");
}

另请注意,在这种情况下您可能不应该使用 NULLNULL 用于指针;你想要 '\0' 代替。

关于与初始化 char[] 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603312/

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