#include #include #include #include #include using namespace std;
#define num 10000
class bclass
// 對於常量型成員變數和引用型成員變數,必須通過引數化列表的方式進行初始化
//普通成員變數也可以放在函式體裡,但是本質其實已不是初始化,而是一種普通的運算操作-->賦值運算,效率也低
private:
int i; // 普通成員變數
const int ci; // 常量成員變數
int &ri; // 引用成員變數
static int si; // 靜態成員變數
static int si2; // error: 只有靜態常量成員變數,才可以這樣初始化
static const int csi; // 靜態常量成員變數
static const int csi2 = 100; // 靜態常量成員變數的初始化(integral type) (1)
static const double csd; // 靜態常量成員變數(non-integral type)
//static const double csd2 = 99.9; // error: 只有靜態常量整型資料成員才可以在類中初始化
static const double csd2;
};//注意下面三行:不能再帶有static
int bclass::si = 0; // 靜態成員變數的初始化(integral type)
const int bclass::csi = 2; // 靜態常量成員變數的初始化(integral type)
const double bclass::csd = 99.9; // 靜態常量成員變數的初始化(non-integral type)
// 在初始化(1)中的csi2時,根據著名大師stanley b.lippman的說法下面這行是必須的。
// 但在vc2003中如果有下面一行將會產生錯誤,而在vc2005中,下面這行則可有可無,這個和編譯器有關。
//const int bclass::csi2=100;
int global; //初始化為0
char ch; //初始化為空字元
int a[5]; //初始化為全零陣列
char ch1[5]; //初始化為null陣列
int main()
C 變數初始化規則
1 定義變數的時候,如果沒有初始化,它的值是什麼呢?它的值取決於變數的型別和變數定義的位置。2 考慮基本型別的變數,定義時沒有初始化。如果定義在方法外部,初始化為0,如果定義在方法內部,不被初始化。使用未初始化的變數,導致未定義行為。未初始化的變數事實上,也有乙個值,這個值是隨機的。因此強烈建議,基...
C 中變數預設初始化規則
定義沒有初始化式的變數時,系統有時候會幫我們初始化變數。系統如何初始化取決於變數的型別以及變數定義的位置。1 內建型別變數是否自動初始化取決於變數定義的位置。函式體外定義的變數初始成0 函式體內定義的變數不進行自動初始化。除了用作賦值操作的左運算元,其他任何使用未初始化變數的行為都是未定義的,不要依...
C 初始化變數
1.初始化變數 int i1 7.2 正確,但是i1的值變為了7 int i 建議使用初始值列表 int i2 錯誤 初始值列表確保不會發生某些可能導致資訊丟失的型別轉換 int i3 錯誤 同上,且 是多餘的 2.使用auto關鍵字 struct record auto p new record ...