高階指標總結

2021-08-10 21:27:45 字數 1301 閱讀 2244

指標陣列

首先宣告,指標陣列是陣列,比如

int *arr1[10](

是陣列)

;char*arr2[4](

是陣列) char**arr3[5](

是陣列)

。陣列指標

是指標,指標都有型別,那麼,

int*print

是能指向整型資料的指標,

比*的優先順序高,但是

int (*p)[10]

確是陣列指標,這個指標有能力指向乙個陣列。接下來來看一段**:

int arr[10]=;

arr;//

陣列首元素的位址

&arr;//

陣列位址

printf(「%p\n」,arr);

首位址printf(「%p\n」,arr

+1);

第二個元素位址;

printf(「%p\n」,&arr+1);//

printf(「%p\n」,&arr[0]+1);//

第二個元素的位址;

陣列指標存放陣列位址最合適;

對於二維陣列的傳參,由於二維陣列在記憶體中是連續存放位址的,其實它的本質是指向一位陣列的指標,所以必須指定這個所指向的一維陣列的長度。

函式指標

在記憶體中任何東西都有位址,函式也不例外,那麼值得思考的問題就是,函式的位址應該怎樣儲存,,即就是通過函式指標存放,比如

void (*pfun1)();

函式指標陣列

int (*parr1[10])();

函式指標陣列的用途就是:轉移表。(計算器)**如下:

#include#include#pragma warning(disable:4996)

int add(int a, int b)

int sub(int a, int b)

int mul(int a, int b)

int mydiv(int a, int b)

int main()

;//轉移表

while (input)

else

printf("輸入有誤");

printf("ret=%d\n", ret);

} return 0;

}

函式指標陣列指標

看**

void test(const char*str)

int main()

可以無限制的加

*,當然在實際編碼的時候不存在這麼複雜的操作,因為**是給人看的。哈哈。

指標與指標高階

指標 pointer 是程式語言中的乙個物件,利用位址,它的值直接指向 points to 存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此將位址形象化的稱為 指標 意思是通過它能找到以它為位址的記憶體單元。32位平台是4個位元組 64位平台是8個位...

指標高階,巨集

使用巨集應注意的幾個問題 使用巨集時,最後不能加分號,分號也會最為替換的內容 引數要加括號 對於有參巨集,巨集名與括號之間不能加空格 結構體指標訪問結構體成員,通過指向操作符,例如 結構體指標變數 結構體成員 printf s n pstu name 指向操作符 pstu age 100 print...

iOS 指標高階

一 基本知識點 int a 10 int p 定義乙個int型別的指標p a 指標變數p指向了變數a p 20 使用指標不通過變數直接修改變數a的值為20 p表示訪問指標變數p指向的儲存空間 指標乙個作用 能夠根據乙個位址值,訪問 取值 賦值 對應的儲存空間 指標變數p前面的int,表示指標的型別 ...