考虑:
int a[100];
a[i]
(其中0
答案 0 :(得分:2)
是的,为什么不呢?这些位可以是任何东西,整数的符号通常是其MSB(最高有效位)。如果该位为1
,则int
将被视为否定。
答案 1 :(得分:1)
答案是它可以是任何值。
但是,不要考虑将它用于任何事情。这个程序: -
void func()
{
int a[100];
if (a[10] == 0 || a[10] != 0) {
std::cout << "The value is either zero or not zero\n";
}
}
完全有可能您的编译器不会打印消息,因为访问初始化值是未定义的行为,编译器可以执行任何包括这样的事情。并且越来越多的编译器。
答案 2 :(得分:0)
我想如果你理解垃圾价值的含义,你就不会问这个问题。
声明变量时,会为其分配一块内存。该内存可以是操作系统认为免费的任何内容,因此可以包含由分配了相同内存的某个先前程序写入的位。
之前的节目可能是任何东西(音乐播放器,您正在播放的游戏,您观看过的图像等)。因此,该数据只是一堆位,现在在代码中用作整数。所以你的编译器会把它读成一个整数,这就是为什么如果AlexG提到的第一位是1
它可能是负数