typename arrayname[arraysize]
要求arraysize在編譯是已知,不能是變數。
陣列作為由基本型別組成的復合資料型別,arrayname要強調是對應基本資料型別組成的陣列(特定陣列)
通過下標或索引單獨訪問各個元素(可能引發陣列越界的問題,int a[20],容易錯誤訪問a[20])
陣列可使用列表初始化,即c++11可省略=
char ch[4];
65在char的範圍內char string[4]=;
char string="her";
已空字元結尾的字元陣列是字串,c-風格字串,第二種是隱式寫法,會自動加'\0'
cout << "i am a student.\n";
cout <
cout <
c++允許字串的拼接,第乙個字串的隱式'\0'會被第二個字串的第乙個字元代替cstring中含strlen()函式,字元陣列的長度不能小於strlen()+1.cin>> name1
cin>> name2
cin已空格,製表符,換行符確定字串結束,例如在name1是輸入bob tom,bob放到name1,tom留在輸入佇列,無需在輸入,cin會在輸入佇列中讀取bob
cin.getline(stringname,num)
以上為將鍵盤輸入寫入到stringname[num]的字元陣列,num包含'\0'
getline()成員函式按行輸入,遇到'\n'結束,捨棄換行符,get()不捨棄換行符,連續輸入採用cin.get(s,num).get()的方式。
cin.getline().getline() //可以看成連續兩次呼叫getline
cin.get().get()返回cin物件,這是一種拼接方式
(cin>>year).get()//處理'\n' year 為int
cin.get(s,num)
#include
string str1;
string str2;
string str3;
cin >> str1;//c++自動調整str1的長度
st2r=str1;
str1=str2+str3;
#include
strcpy(s1,s2)//copy s2 to s1
s1.size()//結果與strlen()等價,但有.說明是物件.類方法(函式)
#include #include//stl c++98 ,動態陣列的替代品
#include//c++11
int main()
;vector b(4);//個數常量或變數
b[0]=1.4;
b[1]=1.2;
b[2]=3.5;
b[3]=6.7;
array c=;
array d;//個數必為常量
vector物件在自由儲存區或堆區,array物件,陣列在棧區,array物件可以賦值給另乙個物件,陣列只能乙個乙個賦值
int * pt=new int ;
delete pt;//不能用delete 連續兩次釋放同乙個記憶體塊
c primer plus復合型別之指標
指標是乙個變數,其儲存的是值的位址,而不是值本身。了解 在討論指標之前,我們先看一看如何找到常規變數的位址,只需對變數應用位址運算子 就可以獲得他的位置,例如 int cups 6 double donuts 4.5 cout cups value 程式輸出 cups value 6 and cup...
c primer plus 復合型別之陣列
編譯器會把陣列名轉換為乙個指標常量,是陣列中的第乙個元素的位址,型別就是陣列元素的位址型別,如 int a 10 陣列名a若出現在表示式中,如int p a 那麼它就轉換為第乙個元素的位址,等價於int p a 0 只有兩種情況下例外 第一種是對陣列名使用sizeof運算子 sizeof a 這將會...
C primer plus 第4章 復合型別
1.陣列初始化 2.字串 兩種方式 c 風格字串 以 0結尾 string類庫 單引號表示字元常量 a 是字串編碼的簡寫,char a a 是正確的。但是 a 表示的是兩個字元a和 0組成的字串,實際上 a 表示的是字串所在的記憶體位址,因此char a a 是非法的 1 cin.getline a...