一、陣列指標與指標陣列
1, 指標陣列
所謂指標陣列,就是指標組成的陣列,即陣列的元素為指標
int *pa[size]; //size為元素數目,元素的值為int型別的指標
2, 陣列指標
所謂陣列指標,就是指向陣列的指標,即其是乙個指標,指向陣列。
int (*pa)[size]; //size為陣列的元素數目,pa指向乙個大小為size的int型別的陣列。
我們說對於定義的乙個陣列arr[n],arr就是這個陣列的首元素位址的首位址。在(*pa)[size]中,pa等於陣列的首位址,二者其實在值上是相同的,能不能把arr賦值給pa呢?不可以。區別在於:二者雖然值相同,但意義不同,arr是首元素的首位址,pa是陣列的首位址。在運算過程中*(arr+1)相當於訪問的是陣列元素arr[1];而*(pa+1)則相當於陣列首位址加了size。
示例:char *a[3] = ; //a位陣列指標,元素為各字串的首位址
int a[5] = ;
int (*pa)[5] = &a; //定義pa指向陣列a
cout<<*(a+1); //輸出2,訪問第二個元素
int *aptr = (int *)(pa+1); //pa+1在數值上相當於a+5;
cout<<*(aptr-1); //輸出5,訪問最後乙個元素
cout1, 指標函式
int *fun(int a,int b); //函式的返回值是指標
2, 函式指標
int (*fun)(int ,int ); //是乙個指標,它指向的是乙個函式
示例://指標函式示例
int*fun(int size) //指標函式,返回的是指標
int*p;
p= malloc(size*sizeof(int));
returnp;
函式指標示例
intmax(int a, int b)
return a>b? a: b;
void main(){
int (*fun)(int , int);
fun = max;
cout<<(*fun)(2, 3)< 函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的... 陣列中每個元素都是物件,即占有特定型別的記憶體空間。陣列名可以轉化為這個陣列物件的首個元素的位址。這裡我們不去討論一維陣列,直接從二維說起。所謂二維陣列也是陣列,只不過它的元素也是乙個陣列。首先我們寫乙個二維陣列留作使用 include using namespace std int a 10 vo... 綜述 函式指標是乙個指向函式的指標,而指標函式是指乙個返回值為指標的函式 陣列指標是乙個指向二維陣列的指標變數,而指標陣列是多個指標變數以陣列的形式儲存在記憶體中 一 函式指標 1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的優先順序高於 所以指標變數名外的括...函式指標和指標函式 陣列指標和指標陣列
陣列 陣列指標和函式指標
指標函式和函式指標 指標陣列和陣列指標