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

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