C 學習筆記11 動態陣列與多維陣列

2021-07-05 18:00:36 字數 1138 閱讀 7498

1,new與delete

儲存動態建立的物件的記憶體區域稱為自由儲存區(free store)與堆(heap)。

new表示式:

int *pia = new int[10];//未初始化

string *psa = new string[7];//呼叫預設建構函式初始化

int *pia = new int[10](); //初始化為0

delete pia;

delete psa;

注意:不能省略,除非只是收回單個物件的記憶體

2,c_str()

此為string類的成員函式,返回c風格字串。

注意:返回的型別是 const char *,而不是char *

string str = "hello world!";

const char *str = str2.c_str();// ok

char *str = str2.c_str(); //error! 不能將const char *賦值給char *

3,多維陣列

int a[3][4];

表示a為 長度為3的陣列,陣列裡的每個元素又都是乙個長度為4的int陣列

在這種設定下:

a[2]不代表某個int型資料,而是最後乙個長度為4的陣列

即,a[2]是int *或者說是int [4],而不是int; &a[2]是int(*)[4]

乙個長度為4的int陣列的指標:int (*p)[4]

指向二維陣列的指標: int (*p)[3][4]

4,typedef陣列型別

用typedef定義乙個陣列型別

typedef int int_array[4];//int_array就是乙個長度為4的int陣列

int ia[3][4] = ,

, };

int_array *ip = ia;

請注意typedef中,的位置。

C 學習筆記 11 多維陣列

多維陣列 多維陣列 如果乙個一維陣列中的每個元素都是同型別同大小的一維陣列,情況會是什麼樣子呢?下圖表示了乙個 m 1 n 1 的二維陣列,二維陣列實質上是對一維陣列的擴充套件,其中的每個元素要用兩個下標來表示,前乙個稱為行下標,後乙個稱為列下標。宣告乙個多維陣列 和一維陣列一樣,宣告的主要作用就是...

c 學習筆記6,陣列,多維陣列

初始化陣列 double balance 5 訪問陣列元素 陣列元素可以通過陣列名稱加索引進行訪問。元素的索引是放在方括號內,跟在陣列名稱的後邊。例如 double salary balance 9 上面的語句將把陣列中第 10 個元素的值賦給 salary 變數。下面的例項使用了上述的三個概念,即...

指標與陣列(C 學習筆記 11)

1 定義指向陣列元素的指標 每個陣列元素相當於乙個變數,所以定義指向陣列元素的指標與定義指向變數的指標方法相同。例如 int ia 5 定義包含5個陣列元素的整型陣列ia int pi 定義指向整型變數的指標變數pi pi ia 0 使指標變數pi指向陣列的第0個元素 pi ia 0 pi ia 2...