C 37 指標閱讀技巧分析

2021-09-13 01:12:16 字數 2470 閱讀 2865

int (*p1)(int*, int (*f)(int*));

int (*p2[5])(int*);

int (*(*p3)[5])(int*);

int* (*(*p4)(int*))(int*);

int (*(*p5)(int*))[5];

int (*p)(int);

1. (*p)          ==> p 是乙個指標

2. (*p)(int) ==> p 是乙個函式指標

3. int (*p)(int) ==> p 是乙個函式指標,函式型別為 int(int)

int (*p1)(int*, int (*f)(int*))

1. (*p1)                           ==> p1 是乙個指標

2. (*p1)(int*, int (*f)(int*)) ==> p1 是乙個函式指標

3. int (*p1)(int*, int (*f)(int*)) ==> p1 是乙個函式指標,函式型別為 int(int*, int (*f)(int*))

int (*p2[5])(int*)

1. p2[5]              ==> p2是乙個包含5個元素的陣列

2. (*p2[5]) ==> p2是乙個包含5個指標元素的指標陣列

3. (*p2[5])(int*) ==> p2是乙個包含5個函式指標元素的函式指標陣列

4. int (*p2[5])(int*) ==> p2是乙個包含5個函式指標元素的函式指標陣列,函式型別為 int(int*)

int (*(*p3)[5])(int*)

1. (*p3)                 ==> p3 是乙個指標

2. (*p3)[5] ==> p3 是乙個陣列指標,指向的陣列包含5個元素

3. (*(*p3)[5]) ==> p3 是乙個陣列指標,指向的陣列包含5個元素,元素型別為指標

4. (*(*p3)[5])(int*) ==> p3 是乙個陣列指標,指向的陣列包含5個元素,元素型別為函式指標

5. int (*(*p3)[5])(int*) ==> p3 是乙個陣列指標,指向的陣列包含5個元素,元素型別為函式指標,函式型別為 int(int*)

int* (*(*p4)(int*))(int*)

1. (*p4)                     ==> p4 是乙個指標

2. (*p4)(int*) ==> p4 是乙個函式指標

3. (*(*p4)(int*)) ==> p4 是乙個函式指標,包含乙個 int* 引數,函式返回值為指標

4. (*(*p4)(int*))(int*) ==> p4 是乙個函式指標,函式包含乙個 int* 引數,函式返回值為函式指標

5. int* (*(*p4)(int*))(int*) ==> p4 是乙個函式指標,函式包含乙個 int* 引數,函式返回值為函式指標,函式型別為 int(int*)

int (*(*p5)(int*))[5]

1. (*p5)                 ==> p5 是乙個指標

2. (*p5)(int*) ==> p5 是乙個函式指標

3. (*(*p5)(int*)) ==> p5 是乙個函式指標,函式包含乙個 int* 引數,返回乙個指標

5. (*(*p5)(int*))[5] ==> p5 是乙個函式指標,函式包含乙個 int* 引數,返回乙個指向5個元素的陣列指標

6. int (*(*p5)(int*))[5] ==> p5 是乙個函式指標,函式包含乙個 int* 引數,返回乙個陣列指標, 陣列型別為 int[5]

int* (*(*p4)(int*))(int*) ==>

typedef int(func1type)(int*);

typedef func1type*(func2type)(int*);

func2type p4;

int (*(*p5)(int*))[5] ==>

typedef int(arraytype)[5];

typedef arraytype* (functype)(int*);

functype* p5;

指標閱讀技巧分析

右左法則 例子1 複雜指標 include int main int p1 int,int f int p1為指標,指向函式,指向的函式有int f為第二個引數,它是乙個函式指標,指向的函式引數是int 返回值為int 返回值為intint p2 5 int p2為陣列,有5個元素,這5個元素為指標...

3 7 指標與強制型別轉換

1 所有的型別的資料儲存在記憶體中,都是按照二進位制格式儲存的。所以記憶體只知道有0和1,不知道是int的,還是float的還是其它型別。2 int,char,short等屬於整型,他們的儲存方式 數轉換成二進位制往記憶體中存放的方式 是相同的,只是記憶體格仔大小不同 所以這幾種整型就彼此叫二進位制...

C語言(九) 指標(3)指標與const

表示一旦得到了某個變數的位址,不能再指向其他變數 int i 0 int const q i q是 const q 20 ok q error表示不能通過指標去修改這個變數 int i 0 int j const int p i const int p 等同於 int const p p 20 er...