谭浩强1. 在程序中一般是通过变量名来对内存单元进行存取操作的。 其实程序经过编译之后已经将变量名转换为变量的地址,对变量的存取都是通过地址进行的。 2. C语言中实参变量和形参变量之间的数据传递是单向的“值传递”方式,指针变量作函数参数也要遵循这一规则, 不可能通过调用函数来改变实参指针变量的值,但可以改变实参变量指针所指变量的值。 3. 引用数组元素可以用下标法,也可以用指针法。 使用指针法能使目标程序质量高(占内存少,运行速度快) 4. 事实上, 在编译的时候, 对数组元素a[i]就是按*(a+i)处理的, 即按数组首元素的地址加上相对位移量得到要找的元素的地址, 然后找出该单元的内容. 可看出, [ ]实际上是一种变址运算符, 将a[i]按照a+i算地址 故指向数组的指针变量也可以带下标, a[i]和*(a+i)等价 由3,4看出,引用一个数组元素, 可以: 下标法: a[i] 指针法: *(a+i) 或 *(p+i)s 只需记住一点:指针指向的数据类型与定义时指针的类型一定要是对应的。除了用强制类型转换。

评论