關於陣列的語法點還是很多的,基本陣列,字元型陣列,指標陣列,還有c++標準庫中的關於陣列的容器,今天只簡單總結下,關於c++中陣列的宣告和使用的一些細節。
#includeusing namespace std;
void main()
; //常用的方式
int myarray2[4] = {}; //可以不設定初值,就預設陣列中全為0
int myarray3 ; //在中可不寫陣列長度,但必須給該陣列初值,c++會根據你給的陣列初值分配相應的空間
//在這裡myarray3的陣列長度就是4,索引為0~3
double myarray4[12]; //也可以不寫等號
cout << myarray1[0] << endl; //陣列的索引從0開始
cout << myarray2[1] << endl;
cout << myarray4[10] << endl; //沒被賦值的部分也都為0
myarray1[0] = 99; //可通過索引改變陣列中對應的值
cout << myarray1[0] << endl; //輸出值為99
//以下都是錯誤操作
cout << myarray1[10] << endl; //error 當我們訪問的索引超出了該陣列的邊界時,c++也不會報錯,但這樣做是錯誤的
myarray1 = myarray2; //直接將乙個陣列變數的賦值給另乙個陣列變數時錯誤的
}
#includeusing namespace std;
void main()
, ,
};for (int i = 0; i < 3; i++) //迴圈3次,即3行
cout << endl; //每輸出完一行換行
}}
#include#include//為了可以操作string而引入的c++的string類
using namespace std;
void main()
; //字元型陣列可直接輸出陣列中的所有內容,
cout << name << endl;
int a[4];
//如果是數值型陣列,不寫索引直接輸出會輸出一串十六進製制,這是該陣列在記憶體中的位址
cout << a << endl;
//這種方式更加簡便且不用加'\0'
char charray;
cout << charray << endl;
//這裡說下c++的標準庫中有專門針對字串而寫的容器string,有很多操作方法,大家可以自行去檢視和學習
string mystr = "this is the best";
cout << mystr;
}
關於cin輸入流輸入字串的一些問題:
#includeusing namespace std;
void main()
; //cin >> charray1; //這裡我輸入mr suxi
//cout << charray1 << endl; //最終只輸出了mr,因為提取運算子》預設輸出終止符為空格、製表符tab和回車,
//在我敲擊空格時cin就不在接收輸入了
char charray2[20]{};
//這裡我們用getline()函式,第二個引數為限定的輸入長度
cin.getline(charray2, 20);
cout << charray2 << endl; //可以得出完整的一行字串
//此時只有輸入*時再按回車才會結束輸入,因此可一下子輸出多行字串
cin.getline(charray2, 20, '*');
cout << charray2 << endl; //可以得出完整的一行字串
}
原生態的陣列很不方便,定義的時候就要設定好設定數值長度,之後就無妨修改這個陣列的容量,同時訪問陣列中的數值只能用索引的方式,完全不靈活,然而c++的標準模板庫中有陣列的替代品也就是關於陣列的容器類,更容易操作,安全性高,靈活性也更大,這裡只簡要介紹下。
#include#include//引入c++標準模板庫中的array類,才可以操作array容器
using namespace std;
void main()
; //可直接輸出陣列的長度
cout << myarray.size() << endl;
//fill()函式可以將陣列中的所有值變為你傳遞進去的值
myarray.fill(29);
for (int i = 0; i < myarray.size(); i++)
}
array為固定長的容器,即在定義時必須要設定長度,雖然感覺和原始的陣列沒什麼太大卻別,但可以提高安全性,這個在初學階段感覺不到,還有array提供很多方便的運算元組的方法,大家可以去去試試。
下面的vector容器就靈活多了,它是長度可變的,光是這一項能力就讓它可以解決我們很多程式設計問題。
#include#include//引入c++標準模板庫中的vector類,才可以操作vector容器
using namespace std;
void main()
關於c++陣列方面的內容很多,c++標準模板類中的相應容器類也不少,我們只需要在合適的時候使用合適的容器和方法就行了。
C 基礎三 陣列
include using namespace std intmain 陣列不夠5個元素,將被0填充 for int i 0 i 5 i 2.陣列名 int arr 5 cout sizeof arr 0 endl 統計陣列某值的記憶體占用大小 cout sizeof arr endl 統計陣列的記...
C 學習(三) 基礎(三)
include using namespace std 1 引用的基本語法 引用 給一段記憶體空間起別名 語法 型別 別名 原名 void test1 注意 1 引用必須要初始化 void test2 2 建立乙個對陣列的引用 1 先定義出陣列的型別,在定義引用 陣列型別定義 typedef int...
C語言基礎(三)(陣列)
int arr 10 int為元素的型別,不是陣列的型別,陣列是int 10 型別的。int arr 5 完全初始化。完全初始化即為給陣列的每個元素都賦值。int arr2 5 部分初始化。部分初始化為給陣列的部分元素賦值,其餘元素為隨機值。int arr3 5 陣列置零,即全部元素的值都為零。編譯...