当前位置: 首页 > 编程语言 > C语言 > 正文

C语言基础教程(四)指针、结构、联合和枚举(3)

时间:2007-05-04 王大刚
1.2. 地址运算
指针允许的运算方式有:
(1).指针在一定条件下,可进行比较,这里所说的一定条件,是指两个指针指向同一个对象才有意义,例如两个指针变量p,q指向同一数组,则<, >, >=, <=, ==等关系运算符都能正常进行。若p==q为真,则表示p, q指向数组的同一元素;若p<q为真,则表示p所指向的数组元素在q所指向的数组元素之前(对于指向数组元素的指针在下面将作详细讨论)。
(2).指针和整数可进行加、减运算。设p是指向某一数组元素的指针,开始时指向数组的第0号元素,设n为一整数,则p+n就表示指向数组的第n号元素(下标为n的元素)。
不论指针变量指向何种数据类型,指针和整数进行加、减运算时,编译程序总根据所指对象的数据长度对n放大,在一般微机上, char放大因子为1,int、short放大因子为2,long和float放大因子为4,double放大因子为8。对于下面讲述到的结构或联合,也仍然遵守这一原则。
(3).两个指针变量在一定条件下,可进行减法运算。设p, q指向同一数组,则p-q的绝对值表示p所指对象与q所指对象之间的元素个数。其相减的结果遵守对象类型的字节长度进行缩小的规则。
2.指针和数组
指针和数组有着密切的关系,任何能由数组下标完成的操作也都可用指针来实现,但程序中使用指针可使代码更紧凑、更灵活。