指針是C語言中廣泛使用的一種數據類型,使用指針可以編寫出精煉而高效的程序,這也是強大與魅麗之所在。
int(*func)(int *p,int(*f)(int *));
int(*func[5])(int *p);
int(*(*func)[5])(int *p);
*func此時是一個指針,右邊一個[]運算符號說明func是一個指向數組的指針,這個數組的元素是指向函數的指針,這些指針指向的函數具有int*類型的形參,返回值類型為int。
int(*(*func)(int *p))[5];
func是一個函數指針,這類函數具有int*類型的形參,返回值是指向數組的指針,指向的數組的元素是具有5個int元素的數組。
指針的運算就是地址的運算,因此只允許有限的幾種運算,一般表現為指向某一存儲單元,指針與整數的加減用來移動指針,兩個指針相減得到兩個地址之間的數據個數,指針與指針或者指針與地址之間的比較決定指針所指向的存儲位置的先後。在指針的運算過程中,注意指針所指的數據類型顯得相當重要。
在了解了指針的聲明和指針的運算後,下一篇將對相對具體的指針用法做個區別和演示。