C語言的函數指針數組(好繞啊~看完這篇估計就通關了)


int *(*p(int))[3]

    今天有人問這個是啥?我一看直接就懵逼了……

    下面做一些簡單的分析。

    int p; //這是整數型變量p

    int *p; //這是整數型指針p

    int *p[3]; //這是長度為3的整數型指針數組p,元素為整數型指針

    int (*p)[3]; //這是一個數組指針,指向一個長度為3的整數型數組

    int p(int); //這是函數聲明,形參:整數型 ,返回值:整數型

        等同於 int p(int x);

    int *p(int); //這是函數聲明,形參:整數型 ,返回值:整數型指針

        等同於 int *p(int x);

    int (*p)(int); //這是函數指針,指向有一個整數型形參和整數型返回值的函數

    int (*p[3])(int);//這是函數指針數組,每個元素指向有一個整數型形參和整數型返回值的函數

    int *(*p(int)); //這是函數聲明,形參:整數型 ,返回值:指向整數型指針的指針

        等同於 int **p(int) , int **p(int x) , int *(*p(int x))

    int *(*p(int))[3]; //這是一個函數聲明,形參:整數型,返回值:一個數組指針數組,此數組內的指針,指向一個長度為3的整數型指針數組。

        我知道這個很繞,簡單說返回值就是這樣: int *i[x][3]; //x是任意數

 

以上結論均在VisualStudio2010中進行測試,無誤。如果我有所疏漏,或者是有什么表達不清,請留言哦,么么噠(づ ̄ 3 ̄)づ。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM