【电子资讯】使用指针变量需注意问题
在使用指针变量时,要注意以下几个问题:
① 指针变量指向一个数组.在使用指针变量时可能会指到数组之外,也就是越界。如定义一个数组x[5],在使用指针变量时,没有检查数组越界从而误使指针为(p+5),也就是指向并不存在的数组元素x[5],但编译器并没有报错,这样在程序运行时可能会出现无法预料的错误。
②指针变量可以使本身的值改变,如p++使P值不断改变,分别指向数组中的不同元素。而使用x++是不行的,因为X是数组名,它是数组的首地址,是常量,不能用自加或自减号,在数组定义时就已经有编译系统分配好。
③在使用指针变量的自加(++)和自减(一一)运算时要小心,很容易弄错,在编程时应该引起足够的注意。如果有下面程序:
knt xLSJ; ’
int*P=&X[o];
则
>(*p)++表示P所指向的元素加1,而不是指针加1。如果P—X,则执行(*p)++相当
于xEo]++
>*(p++)和*(++p)意义不同,前者是先取*P的值,然后p=p q-1;后者是先P—p+1,
>执行*p++,由于自增运算符++和*同优先级,是自右而左的结合方向,因此它等价于
*(p++),作用是先得到P指向的变量的值(即*p),然后p—p q-1
>执行p++(或p—p+1)后,使P指向下一元素,即P指向x[1],则*P就等于x[1]的值
电子街更多推荐