主要來自於孟憲福老師的分布式物件課程。
int a[7][8];//
a指向 a-->a[0]-->a[0][0] a[0]是第0行一維陣列
//a + i --> a[i] --> a[i][0]
a[i][j];//等價於*( *(p + i ) + j)
定義乙個函式返回7*8的陣列a
int ( *f () ) [8]
總結起來就是:
1. 從識別符號開始 a. 定義陣列,陣列的元素是什麼? b. 定義函式,函式的返回值是什麼? c. 定義指標,指標指向誰?
2. [ ] 和 ( )的優先順序大於 *
char f1(intx)char (* b) ( int ) =
b[0] =f1;
b[1] =f2;
b[2] =f3;
char x = b[0](10
);char y = b[1](20);
一些例子:
int f()[5]; //f是乙個函式,函式返回乙個陣列,錯
int f()();//
f是乙個函式,函式返回乙個函式,錯
int (*f())[5]; //
f是乙個函式,函式返回乙個指標,指標指向乙個有五個元素的陣列
int a[6]();//
a是乙個陣列,陣列元素是乙個函式,錯
int (*a[6] ) (); //
a是乙個陣列,陣列的元素是指標,指標指向返回型別是int的函式
最後乙個例子:
float f(intx) float (* func ()) ( int )
float (*p) (int
);p =fun();
float f1 =(*p)(5);
函式指標陣列的一些用法
首先函式指標陣列是陣列,其次陣列裡面存放的是函式指標,函式指標又是什麼呢,函式指標是指向函式首位址的指標,我個人認為函式指標陣列可以批量像呼叫陣列元素一樣方便呼叫一些功能相似的一些函式 小弟愚見 我寫這個部落格之前就是遇到這個問題。首先介紹一下我遇到問題背景,想做個mini3216時鐘,顯示時間是用...
函式指標和指標函式的一些事
先來說說如何宣告 函式指標的宣告 void f 指標函式的宣告 void f 指標函式這裡就不多說了,就是乙個返回型別為指標的函式,本質上就是乙個函式 函式指標是指向函式的指標,在linux核心裡面經常用到,我們知道c語言裡面的結構體是不能包括函式的,所以在c語言裡面想要運用到物件導向的思想的話就需...
陣列和指標的一些理解
指標和陣列 一直好讀書不求甚解,本人用了6年以上的c語言,才真正對指標和陣列有些了解。指標和陣列是一樣?int a 5 int p a sizeof p 4 而 sizeof a 20 為什麼?int a 5 extern int a 或者int p null extern int p 是否可以這樣...