C/C++ 程式中的未初始化基本資料型別


本部分將探討在 C 或 C++ 語言中宣告一個未初始化變數時,它們具有的值。有時我們假設編譯器會分配一些值,例如 int 為 0,float 為 0.0 等。但是字元資料型別會怎麼樣呢?讓我們使用實現,並使用不同的編譯器進行編譯。

示例 (C++)

讓我們檢視下面的實現以獲得更好的理解 -

 即時演示

#include <iostream>
using namespace std;
int main() {
   char char_var;
   float float_var;
   int int_var;
   double double_var;
   long long_var;
   cout << char_var << endl;
   cout << float_var << endl;
   cout << int_var << endl;
   cout << double_var << endl;
   cout << long_var << endl;
}

輸出(在 Cpp.sh 中編譯)

0
0
0
0

輸出(在線上 GDB 中編譯)

5.88054e-39
0
6.95297e-310
0

輸出(本地系統)

9.73438e-039
4309744
1.15685e-306
-53505136

現在的問題是,為什麼 C/C++ 編譯器沒有使用預設值初始化變數?答案很簡單,初始化一個堆疊變數很昂貴,因為它會妨礙執行速度,因此這些變數可能包含不確定的值。因此,在程式碼中應用之前,將基本資料型別變數初始化視為一種好習慣。

更新於: 27-8-2020

217 次瀏覽

職業快速啟動

完成課程即可獲得認證

立即開始
廣告
© . All rights reserved.