【发布时间】:2022-07-05 13:53:12
【问题描述】:
我正在哈佛的 cs50 课程中从零开始学习 C。 我得到了一个以这种方式初始化的数组:
int stuff[9][9];
现在我必须处理它。
我想检查数组的每一项是否存在:如果不存在,则为stuff[i][j] = 0,否则为stuff[i][j]++
但是我在搜索时没有找到如何检查我正在操作的变量是否存在或有效或其他的结果:没有!!stuff[i][j],也没有一些typeof stuff[i][j] 或比较if (stuff[i][j] == 'undefined') 或NULL 或任何变体我可以使用...
那么,如何检查声明的变量是否还没有被初始化呢?
更新
我已经对此进行了测试:
int a[3];
for(int i = 0; i < 3; i++)
{
a[i] = a[i] || 0;
}
for(int i = 0; i < 3; i++)
{
printf("a[%i] -> %i\n", i, a[i]);
}
所以,如果a[i] 不存在(即没有分配给它的值),它将收到值0。
这是printf 的输出:
a[0] -> 1
a[1] -> 1
a[2] -> 0
这很好,因为这种方法没有引发错误,但是……这些数字是多少??
【问题讨论】:
标签: c variables data-structures initialization cs50