C 基礎學習(三)陣列

2021-08-20 09:13:05 字數 2805 閱讀 5228

關於陣列的語法點還是很多的,基本陣列,字元型陣列,指標陣列,還有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 陣列置零,即全部元素的值都為零。編譯...