【C++】C++複合變量的定義及易錯點

//常量,必須初始化,之後不可作爲左值 const int ival=1; /* 變量 1.如果是全局內置類型變量,會進行默認初始化,初始化爲0或者空串,false 2.如果是局部內置類型變量,未經過初始化就使用會導致錯誤,編譯失敗 3.如果是類類型對象,取決於默認構造函數 */ int ival1; /* 整型指針,可以進行算術運算,移動單位取決於指針類型,解引用前需確保指針所指空間不爲空 */ int* ival2=&ival1; /* 整型指針的指針 */ int **ival22=&ival2; /* 整型變量的引用,不是對象,沒有內存空間,沒有地址,只是別名而已,不存在引用的引用,不存在引用的指針,必須初始化,之後不可解綁 */ int& ival3=ival1; /* 整型指針的引用 */ int* (&ival4) = ival2; //語法錯誤,因爲引用不是對象,沒有內存空間,沒有地址,不存在引用的指針,不存在引用的引用 int& (* ival5); //語法錯誤,因爲引用不是對象,沒有內存空間,沒有地址,不存在引用的指針,不存在引用的引用 int& (& ival5); /* 頂層const,表示這個整型指針是常量,必須初始化,且不可重新賦值 */ int* const ival6 = &ival1; /* 整型引用,這裏的const沒有意義,因爲引用本身定義的時候就必須初始化,且一旦綁定就不可解綁 */ int& const ival7 = ival1; //底層const,表示整型常量的指針,指針可以重新賦值,但不可用指針修改整型常量 const int* ival8; //底層const,表示整型常量的引用,引用任何時候都需要初始化,且不可重新賦值,這裏const表示不可通過引用修改原常量 const int& ival9=ival1; //整型常量的指針常量,必須初始化,既不可修改指針,也不可修改指針所指對象 const int* const ival = &ival1; //整型常量的常量引用,必須初始化,不可修改引用,不可修改引用所引對象 const int& const ival = ival1; return 0;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章