第九周學習內容總結html
[]
優先級高於*
定義 int (*p)[n];()優先級高,首先說明p是一個指針,指向一個整型的一維數組,這個一維數組的長度是n,也能夠說是p的步長。也就是說執行p+1時,p要跨過n個整型數據的長度。函數
如要將二維數組賦給一指針,應這樣賦值:學習
int a[3][4]; int (*p)[4]; //該語句是定義一個數組指針,指向含4個元素的一維數組。 p=a;//將該二維數組的首地址賦給p,也就是a[0]或&a[0][0] p++; //該語句執行事後,也就是p=p+1;p跨過行a[0][]指向了行a[1][] 數組指針也稱指向一維數組的指針,亦稱行指針。
指針數組設計
定義 int p[n];[]優先級高,先與p結合成爲一個數組,再由int說明這是一個整型指針數組,它有n個指針類型的數組元素。這裏執行p+1時,則p指向下一個數組元素,這樣賦值是錯誤的:p=a;由於p是個不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],並且它們分別是指針變量能夠用來存放變量地址。但能夠這樣 p=a; 這裏p表示指針數組第一個元素的值,a的首地址的值。指針
如要將二維數組賦給一指針數組:code
int p[3]; int a[3][4]; p++; //該語句表示p數組指向下一個數組元素。注:此數組每個元素都是一個指針 for(i=0;i<3;i++) p[i]=a[i]; 這裏int p[3] 表示一個一維數組內存放着三個指針變量,分別是p[0]、p[1]、p[2] 因此要分別賦值。
類型標識符 函數名(參數表) ;具體格式:int f(x,y);htm
首先它是一個函數,只不過這個函數的返回值是一個地址值。指針函數必定有函數返回值,並且在主調函數中,函數返回值必須賦給同類型的指針變量。例如:blog
01.float fun(); 02.float p; 03.p = fun(a);
函數指針是指向函數的指針變量,即本質是一個指針變量。
* 指向函數的指針包含了函數的地址,能夠經過它來調用函數。聲明格式以下: 類型說明符 (*函數名)(參數)
使用的時候: 01.int (f)(int x); /聲明一個函數指針 / 02.f=func; /將func函數的首地址賦給指針f */