C/C++ 中未初始化的原始資料型別
一個最常見的問題是 C 或 C++ 中某些未初始化原始資料型別的值是多少?好,答案在不同的系統中是不同的。我們可以假設編譯器將 0 賦值給變數。對於整數可以是 0,對於浮點數可以是 0.0,但是對於字元型別的資料呢?
示例
#include <iostream>
using namespace std;
main() {
char a;
float b;
int c;
double d;
long e;
cout << a << "\n";
cout << b << "\n";
cout << c << "\n";
cout << d << "\n";
cout << e << "\n";
}輸出(Windows 編譯器)
1.4013e-045 0 2.91499e-322 0
輸出(Linux 編譯器)
0 0 0 0
現在,問題來了,為什麼 C 或 C++ 不為變數分配一些預設值?答案是,初始化棧變數的開銷太大。它還會阻礙執行速度。因此,這些變數可能會包含一些中間值。所以在使用之前,我們需要初始化原始資料型別的值。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP