C语言总结—chapter 5
时间:2010-07-18 来源:kingyavis
chapter 5 :pointers and arrays/c精华
1.ANSI C使用类型void *(指向void的指针)代替曾经的char *作为通用指针类型。但是其他的每个指针都必须指向某种特定的数据类型。
2.指针是一种保存变量地址的变量。地址运算符&只能应用于内存中的对象,即变量与数组元素。不能作用于表达式,常量或者register类型的变量。
3.*(间接寻址或者间接引用运算符)‘++等一元运算符遵循 从右到左的结合顺序。++*p
4.指针参数使得被调用函数能够访问和修改主调函数中对象的值。
5.一般,用指针编写的程序比用数组下标编写的程序执行速度快。a[i]表示该数组的第i个元素。我们要习惯于从0开始。
6.对数组元素a[i]的引用也可以写成 *(a+i),实际上计算a[i]的值时,都是先转换成*(a+1),再进行的求值。
7.数组名和指针有一个最大的不同:指针是一个变量,因此在C中,pa++(将跳向下一个对象所在的地址,是按一个单位一个单位跳跃的);pa=a都是合法的,但数组名不是变量,如上的形式,是非法的。
8.在函数定义中,char s[],和char *s 是等价的。后者用的比较多。也可以把子数组传给函数,f(&a[2])。
1.ANSI C使用类型void *(指向void的指针)代替曾经的char *作为通用指针类型。但是其他的每个指针都必须指向某种特定的数据类型。
2.指针是一种保存变量地址的变量。地址运算符&只能应用于内存中的对象,即变量与数组元素。不能作用于表达式,常量或者register类型的变量。
3.*(间接寻址或者间接引用运算符)‘++等一元运算符遵循 从右到左的结合顺序。++*p
4.指针参数使得被调用函数能够访问和修改主调函数中对象的值。
5.一般,用指针编写的程序比用数组下标编写的程序执行速度快。a[i]表示该数组的第i个元素。我们要习惯于从0开始。
6.对数组元素a[i]的引用也可以写成 *(a+i),实际上计算a[i]的值时,都是先转换成*(a+1),再进行的求值。
7.数组名和指针有一个最大的不同:指针是一个变量,因此在C中,pa++(将跳向下一个对象所在的地址,是按一个单位一个单位跳跃的);pa=a都是合法的,但数组名不是变量,如上的形式,是非法的。
8.在函数定义中,char s[],和char *s 是等价的。后者用的比较多。也可以把子数组传给函数,f(&a[2])。
相关阅读 更多 +