陣列指標和指標陣列 函式指標和指標函式

2021-08-14 07:39:31 字數 1083 閱讀 4220

一、陣列指標與指標陣列

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 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的優先順序高於 所以指標變數名外的括...