復合型別:基于基本型別和浮點型別創建
4.1 陣列
一、定義:
陣列是一種資料格式,能夠存盤多個同型別的值,
二、陣列宣告:
條件:
- 存盤在每個元素中的值的型別;
- 陣列名;
- 陣列中的元素數;
格式:
typeName arrayName[arraySize];
注意:運算式arraySize指定元素數目,它必須是整型常數(如10)或const值,也可以是常量運算式(如8*sizeof(int)),即其中所有的值在編譯時都是已知的,具體地說,arraySize不能是變數,變數的值是在程式運行時設定的,然而,可以使用new運算子來避開這種限制,
使用:可以單獨訪問陣列元素,方法是使用下標或索引來對元素進行編碼,C++陣列從0開始編號,
有效下標值的重要性:如果將一個值賦給不存在的元素months[101],編譯器并不會指出錯誤,但是程式運行后,這種賦值可能引發問題,
sizeof運算子:
注:sizeof運算子回傳型別或資料物件的長度(單位為位元組),如果將sizeof運算子用于陣列名,得到的將是整個陣列中的位元組數,
三、陣列的初始化規則
- 只有在定義陣列時才能使用初始化,以后就不能使用了,也不能將一個陣列賦給另一個陣列;
- 然而,可以使用下標分別給陣列中的元素賦值;
- 初始化陣列時,提供的值可以少于陣列的元素數目;
- 如果初始化陣列時方括號([])為空,C++編譯器將計算元素個數,
四、C++11陣列的初始化方法:(新增功能)
- 初始化陣列時,可省略等號(=);
- 可不在大括號內包含任何東西,這將把所有元素都設定為零;
- 串列初始化禁止縮窄轉換;
STL提供了一種陣列替代品——模板類rector,C++11新增了模板類array,
4.2字串
一、C++處理字串的方式:
①第一種來自C語言,常被稱為C-風格字串;
②另一種基于string類別庫的方法,
二、C-風格字串
1、存盤在char陣列中,
2、特殊的性質:以空字符(null character)結尾,空字符被寫作\0,其中ASCII碼為0,用來標記字串的結尾,
3、字串定義、賦值
① 大量單引號
char cat[4] = {'c','a','t','\0'};
②使用一個雙引號括起來字串,這種字串被稱為字串常量或字串字面值,
char bird[11] = "Mr.Cheeps"; char fish[] = "Bubbles";
注意:字串常量(使用雙引號)不能與字符常量(使用單引號)互換,
‘S’是字串編碼的簡寫表示,在ASCII系統上,‘S’只是83的另一種寫法;
“S”實際上表示的是字串所在的記憶體地址,
4、拼接字串常量:
任何兩個有空白(空格、制表符和換行符)分隔的字串常量都將自動拼接成一個,
注意:拼接時不會再被連接的字串之間添加空格,忽視\0,
5、在陣列中使用字串:
要將字串存盤到陣列中,最常用的兩種方法:
①將陣列初始化為字串常量;
②將鍵盤或檔案輸入讀入到陣列中;
sizeof運算子指出整個陣列的長度:15位元組;但strlen()函式回傳的是存盤在陣列中的字串的長度,而不是陣列本身的長度,(strlen()函式不把空字符計算在內,)
6、字串輸入的缺陷(cin)
①cin使用空白(空格、制表符和換行符)來確定字串的結束位置,這意味cin在獲取字符陣列輸入時只讀取一個單詞,
②輸入字串可能比目標陣列長,
7、每次讀取一行字串輸入
需要采用面向行而不是面向單詞的方法,
istream中的類(如cin)提供了一些面向行的類成員函式:getline()和get(),這兩個函式都讀取一行輸入,直到到達換行符,
區別:getline()將丟棄換行符,而get()將換行符保留在輸入序列中,
a.面向行的輸入:getline()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/80722.html
標籤:C++
上一篇:板子整理
下一篇:最小割最大流定理&殘量網路的性質
