C++ 复合类型
數組:
C++ 11的初始化方式:
列表初始化:
可以省去等號 如:
double earnings[4] {1.23, 123, 1.654e2}
其次, 可不在大括號內包含任何東西, 這將把所有元素清零:
unsigned int counts[200]={}
第三, 列表初始化禁止縮窄轉換:
long plifs = {? } // 錯誤
char slifs[4] {1122011} //錯誤, 1122011 超過了char數組的取值范圍
字符串:
char fish[]="asdasdasd"
?
字符串在輸入中會遇到的問題:
1. 無法獲取 '\0'
cin.getling():
每次讀取一行字符串的輸入
用法: cin.getline(name, 20)?
這一行將把name 讀入到數組中, 讀取20個字符
cin.get 讀取單次輸入, 換行截止
?
string 類:
C++ 11中也可以用列表初始化 string 類
string類的操作:
string str1 ;
string str2 = str1 //copy str1 to str2?
?
char charr1[2];
char charr2[2]
strcpy(charr1, charr2) // copy charr2 to charr1? 等價于 charr1=charr2?
?
共用體:
union
能夠存儲不同的數據類型, 但是只能同時存儲其中的一種
適用情況:
當目標數據類型可能是某幾種的一種時, 采用共用體可以減少開銷
?
枚舉:
本質為一種符號常量, 可以代替const, 允許定義新類型
?enum{ zero, null = 0 , one , numero =1 }
注意,? 每定義一個枚舉變量, 下一個就會比上一個多1, 但是,枚舉可以允許值相同, 所以, zero==null =0?
使用指針需要注意的地方:
long *fellow;
*fellow = 2333323 // 將一個值放在了未知的區域
危險的地方:
起初fellow 沒有被賦值, 所以fellow可能指向任何地方, 但是223323不知道被放在哪里
于是fellow 指向的地方很可能不是所要存儲223323的地方, 這會導致一些難以查詢的錯誤
?
轉載于:https://www.cnblogs.com/derek-dhw/p/10436691.html
總結
- 上一篇: 使用IDEA整合spring4+spri
- 下一篇: C++内存管理与分配方式