int a[10];
int * p;
in i;
p=a;
1. 數組名a代表數組首元素的地址,它是一個指針常量,它的值在程序運行期間是固定不變的。
2. “p=a”的作用是將數組a的首元素的地址賦給指針變量p。
3. 引用一個數組,可以用下標法,如a[i]或p[i],也可以用指針法,如*(p+i)或*(a+i)。
4. [ ]實際上是變址運算符,即將a[i]按a+i計算出地址,然後找出此地址單元中的值。
5. 使用指針法能使目標程序質量高(佔用內存少,運行速度快)。
6. *(p++):先取 *p 的值,再使 p 加1,相當於 a[i++]
*(++p): 先使 p 加1,再取 *p,相當於 a[++i]
++(*p): 先取 *p 的值,再使 *p 的值加1,相當於 a[i]++
7. voidfun(int arr[]) 相當於 void fun(int *arr) ,C編譯都是將形參數組名作爲指針變量來處理的。
8. 實參和形參組合共有四種:分別是,都用數組名;都用指針變量;實參用數組名,形參用指針變量;實參用指針變量,形參用數組名;但本質上都一樣,都是使用指針變量。
9. 實參數組名代表一個固定的地址,是指針常量,但形參數組是作爲指針變量,在函數調用開始時,它的值等於實參數組首元素的地址,在函數執行期間,他可以在被賦值。
10. 如果指針變量作實參,必須先使指針變量有確定的值,指向一個已定義的單元。
《C語言程序設計》