i之后定义的值是:int i,j = 1;

Dom*_*ger 3 c++

鉴于:

int i, j = 1;
Run Code Online (Sandbox Code Playgroud)

i定义的价值?如果是这样,它是什么?

我怀疑这是重复的,但搜索有点困难 - 如果有人能找到它让我知道.

bob*_*bah 14

  • 默认情况下,全局变量初始化为默认值(int为0)
  • 默认情况下不会初始化局部变量

例如:

#include <iostream>

int a, b=1; // a=0, b=1

int main(void) {
 int p, q=1; // p=undef, q=1
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

局部变量的证明:

#include <iostream>
int main(void) {
  {
    int x = 99; // change stack where a would be
  }
  int a, b=0;
  std::cout << a << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果i*具有文件范围,则用于标识i*将被定义. (5认同)

Mih*_*yan 5

如果此代码在全局范围内,i则将为0.否则i未定义.