C++中局部變量必須先主動初始化,但下面的代碼會輸出0 ,不知為何?#include<iostream>using namespace std;int main(){ int a; cout << a << endl; return 0;
}
1 回答

慕村225694
TA貢獻1880條經驗 獲得超4個贊
C++局部變量必須先初始化,否則其內存上的值是未知的,若是前面用過這塊內存且未消除這塊內存上的值,則此時會讀取到上次的值。
此外不同編譯器對未初始化的局部變量會有不同的處理,比如上面的
#include<iostream>using namespace std;int main(){ int a; cout << a << endl; return 0; }
在vs2017之前會輸出0,在vs2017及之后會報錯——C4700使用了未初始化的局部變量‘a’。即使有的編譯器會把未初始化的局部變量賦值為0但是我們依舊要保持給所有局部變量初始化的好習慣,避免一些意外錯誤。
- 1 回答
- 0 關注
- 825 瀏覽
添加回答
舉報
0/150
提交
取消