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++ 編譯器沒有使用預設值初始化變數?答案很簡單,初始化一個堆疊變數很昂貴,因為它會妨礙執行速度,因此這些變數可能包含不確定的值。因此,在程式碼中應用之前,將基本資料型別變數初始化視為一種好習慣。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP