指標型別學習總結(函式指標 陣列指標和指標陣列)

2021-07-08 13:55:38 字數 1098 閱讀 2262

december 3, 2015 1:41 pm

指標是c語言的一大特色,讓我們可以訪問硬體,讓c變得威力無窮,然而,與之相伴的是不小的風險。

形式含義

void (*f)()

函式指標,本質是乙個指標

void* f()

函式返回指標,指標函式,本質是乙個函式

const int *

常量指標,指標本身不可變

int* const

指向const修飾內容的指標,指標本身可變

const int *const

指向const修飾的內容的常量指標

形式含義

float (**p)[10]p是乙個二級指標,指向的是乙個一維陣列指標

float **p[10]p是乙個指標陣列,陣列中每乙個元素都是指向指標的指標

float*((*p)[10])p是乙個指向一維陣列的指標,陣列中每個元素的型別是float*

float(*p[10])()p是乙個指標陣列,陣列中每乙個元素都是乙個函式指標

float*(*p)[10]等價於float*((*p)[10])

float(*(*f)(int,int))(int)f是乙個函式指標,指向函式型別輸入兩個int變數,返回乙個

函式指標,這個函式指標輸入乙個變數,返回乙個int。

==注意:以上型別的判斷關鍵在於優先順序的判斷,的優先順序比高,()優先順序最高。*==

int x[10] = ;

int(*y)[10] = &x;

int *z = (int*)(&x);

cout << **(y+1) << endl <<*(z+1);

輸出結果

4236901 2解釋

x是乙個陣列名,代表乙個常量指標,指向陣列的首位址;

y是乙個指標,指向一位陣列x,y+1後指向的是陣列最後乙個位址的下乙個位址;

z是乙個普通指標,z+1後,指向的是陣列首位址的下乙個位址。

golang 指標型別學習

對於指標型別不安全程式設計,通過指標值以及偏移量操作slice私有屬性 通過指標值獲取切片 func testgetprivate t testing.t sptr uintptr unsafe.pointer s 獲取當前結構體例項的指標值 t.log sptr arrptr int unsafe...

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

陣列指標 指向陣列的指標,是乙個指標,其指向的型別是陣列 指標陣列 元素為指標的陣列,是乙個陣列,其中的元素為指標。例如 int a 5 這個是陣列指標。int a 5 這個是指標陣列。定義函式指標型別 int max int,int typedef int fun ptr int,int 申明變數...

指標陣列,陣列指標,指標函式,函式指標

int p 4 指標陣列。是個有4個元素的陣列,每個元素的是指向整型的指標。int p 4 陣列指標。它是乙個指標,指向有4個整型元素的陣列。int func void 指標函式。無參函式,返回整型指標。int func void 表示函式指標,可以指向無參,且返回值為整型指標的函式。右左規則 因為...