gpt4 book ai didi

c - 有没有办法创建一个空的 C 数组,并在更新它时跟踪它的空性?

转载 作者:行者123 更新时间:2023-11-30 19:51:33 25 4
gpt4 key购买 nike

我确实相信不存在空的 array 这样的东西在C中,我在想是否我们可以让它们像在其他语言中那样指向空,也许如果它的一些元素有有值(value)的信息,然后它们不再指向空,那么让它们再次指向空……但我实在想不出有什么办法可以做到这一点。

最佳答案

如果数组未初始化,那么您的程序无法仅根据该数组来确定该数组。您需要自己“记住”该信息,例如:

#include <stdbool.h>

int main (void)
{
int a[3] ;
bool a_empty = true;

// ...
if ( a_empty )
printf("a is empty");
// ...

a[0] = 1;
a_empty = false;
}

另一种方法是将一组特定的内容定义为表示“空”(这称为哨兵值):

#include <stdbool.h>

enum { EMPTY = -1 };

bool is_empty(int a[3])
{
return a[0] == EMPTY && a[1] == a[0] && a[2] == a[0];
}

int main (void)
{
int a[3] = { EMPTY, EMPTY, EMPTY };

// ...
if ( is_empty(a) )
printf("a is empty");
}

当然,您必须选择对于预期数组内容来说不是有效数据的标记。如果不存在这样的哨兵,那么您别无选择,只能使用额外的变量,如我的第一个示例中所示。

关于c - 有没有办法创建一个空的 C 数组,并在更新它时跟踪它的空性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42437130/

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