鉴于指针与数组的重要性,在阅读经典 C程序设计语言时将总结内容单独记录在该文中。

ANSI C使用void *(指向void的指针)代替char *作为通用指针的类型。
地址运算符&只能应用于内存中的对象,即变量与数组元素。它不能作用于表达式、常量或register类型的变量。
语句(*ip)++中的圆括号是必须的,如果不加括号,该表达式将对ip进行加一运算,而不是对ip指向的对象进行加一运算,原因是与*和++这样的一元运算符遵循从右至左的的结合顺序。
在函数定义中,形式参数char s[]和char *s是等价的。我们通常更习惯于使用后一种形式,因为它比前者更直观地表明了该参数是一个指针。
函数参数传递时常将数组起始地址传入,也可以将指向子数组起始位置的指针传递给函数,这样,就将数组的一部分传递给了函数。
例如,如果a是一个数组,那么下面两个函数调用:
f(&a[2])与f(a+2)都将把起始于a[2]的子数组的地址传递给函数f.在函数f中,参数的声明形式可以为f(int arr[]){}或者f(int *arr){}