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...