第五講 c c 陣列與指標

2021-07-30 06:23:33 字數 1355 閱讀 9672

本文的編寫是為了在學習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 不進行初始化,存放未...