c - 如何检查c中是否为 "set"

标签 c arrays int

如果我像这样分配一个 C 数组:

int array[ 5 ];

然后,只设置一个对象:

array[ 0 ] = 7;

我如何检查所有其他键(array[1]array[2]、...)是否都存储了一个值? (当然,在这种情况下,它们不是。)

有没有类似PHP的isset()的函数?

if ( isset(array[ 1 ]) ) ...

最佳答案

C 中没有这样的东西。静态数组的内容总是“设置”的。但是,您可以填写一些特殊值以假装它未初始化,例如

// make sure this value isn't really used.
#define UNINITIALIZED 0xcdcdcdcd

int array[5] = {UNINITIALIZED, UNINITIALIZED, UNINITIALIZED, UNINITIALIZED, UNINITIALIZED};

array[0] = 7;

if (array[1] != UNINITIALIZED) {
   ...

关于c - 如何检查c中是否为 "set",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3647435/

相关文章:

ios - 如何在 xcode 调试器中打印出 int 的值?

C中带空格的char转换为int

python - 如何使用 Python 正确解码 .wav

C - 将 X 长度的字符串拆分/存储到结构数组中

JavaScript splice() 方法不删除数组中的时间项是半点吗?

c# - 将数组转换为 IEnumerable<T>

java - ArrayList<Boolean> 类型中的方法 toArray(T[]) 不适用于参数 (boolean[])

c - 这些重复的 GUI 元素从何而来?

c - 如果用户没有在他的计算机上安装/信任我的私有(private) CA,则从服务器端检测

c - C 中的可变参数,如何获取具有泛型类型的值?