本文的編寫是為了在學習c++的時候加深自己的記憶,同時也為與我一般的初學者提供一些參考,此處特別感謝
1.陣列:陣列型別+陣列名[陣列長度]=
(1)宣告陣列,陣列在宣告時必須定義長度以分配記憶體,如:
int m_array1[20];float m_array2[20];
char m_array3[20];
(2)定義陣列,在定義陣列時指明陣列長度,可直接賦值;或者不定義長度,根據實際賦值來預設陣列長度,如:
int m_array1[20] = ;//指明長度,其他補零
char name = "hello world";//根據給定字串自動分配陣列長度
,name的長度是12,因為在後面還有'\0'。
(3)陣列不能直接通過「=」給新陣列賦值,以下是乙個陣列copy的函式,可將乙個陣列賦值給另乙個陣列:
#include
#include
#include//memset()函式的
char* copy(char* dest, const char* src);
int main()
;copy(world2, world1);//函式呼叫
int n = sizeof(world1);
printf("size=%d\n", n);
printf("world1=%s\n", world1);
printf("world2=%s\n", world2);
system("pause");
return 0;
}char* copy(char* dest, const char* src)
return dest;
}
2.指標
(1)宣告指標
int *ptr = &a;//指向變數a的位址
ptr的值根據不同系統會得到不同的值,這就是a所存放的位址,而*ptr卻是這個位址裡面所存放的資料。array[i] == *(ptr+i);//數值
&array[i] == ptr+i;//位址
陣列與指標的關係:在陣列中,陣列名就相當於乙個指向這段連續的首位址的指標,所以我們這就是我們為什麼用陣列名去作為copy函式的引數的原因。
C C 指標與陣列
在二維陣列傳參時,經常遇到這樣的問題,不能將 int 轉換為 int 5 雖然二維陣列a 5 5 的a是二級指標,但是用int 是單純的二級指標,但是二維陣列的a是完全不同的。a 0 表示第一行一維陣列,a 1 表示第二行二維陣列,a是具有結構的,這一點和普通的二級指標具有很大的區別。int p 5...
C C 指標與陣列
目錄 陣列記憶體位址 指標 偏移 指標加減法 指標變數遍歷陣列 取乙個變數的位址 符號 int a 4 a取得變數a的記憶體位址 陣列是一塊連續的記憶體,型別 名字 個數 sizeof 型別 個數,連續的記憶體 區域性變數的陣列,所以這個陣列的記憶體是分配在我們的棧上的 連續的記憶體,由低位址排到高...
C C 陣列與指標
經常使用stl導致陣列與指標都陌生了,複習總結一下 c c 裡指標確實更高效了,也更複雜了 陣列的建立 type t arr name const n type t指數組的元素型別,const n指常量表示式 int arr 10 is ok陣列的初始化 int arr1 10 不進行初始化,存放未...