指針和數組的組合

在一些新手看來,指針有時候是數組,數組有時候也是指針,其實這根本就是錯誤的,指針和數組就是兩回事,他們沒有任何關

系,只是訪問元素的形式相似罷了,下來我們來辨析幾個概念:

1.指針數組     

指針數組是指針還是數組,就看最後兩個字,那就是數組,是一個存放指針的數組。

int *arr[10];   

這裏的arr就是一個指針數組。


2.數組指針

顧名思義,就是一個指向數組的指針。

int (*p)[10];

是不是和指針數組的表示方式很相似,其實區分是數組還是指針,就看p先和誰結合,[ ]的優先級高於*。


3.函數指針

就是一個指針,裏面放的是函數的地址,例如 void (*fun)( );這裏fun就是函數指針,函數的void類型,裏面沒有參數。


4.函數指針數組

根據上文知道,這是一個數組,裏面存放的是函數指針,例如:int (*parr1[10]])(); 函數指針數組有很多用途,例如轉移表。


5.函數指針數組的指針

void (*pfun)(const char*) = test;
//函數指針的數組pfunArr
void (*pfunArr[5])(const char* str);
pfunArr[0] = test;
//指向函數指針數組pfunArr的指針ppfunArr


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章