指针算术运算

来源:互联网 发布:html编程有什么作用 编辑:程序博客网 时间:2024/04/29 04:13

1)指针 +/- 整数:

     这种形式只能用于指向数组中某个元素的指针。

 

     /*

     ** 是一个循环,把数组中所有元素初始化为零

     */

     #include <stdio.h>

     #define N 5

 

     int main(void)

     {

           float  values[N];

           float  *vp = values;

 

           while (vp < values[n])

            {

                   *vp++ = 0;

             }

 

             return 0;

        }

 

 

2)指针 - 指针

     只有当两个指针都指向同一个数组中的元素是,才允许从一个指针减去另一个指针。

 

     如果数组的起始位置为1000,p1的值是1004,p2的值为1024(p1, p2都指向数组),那么p2 - p1 = 5(每个元素长度为4);

     p1 - p2 也是合法的,结果为-5。

 

警告:

       实际上,绝大多数编译器都不会检查指针表达式的结果是否位于合法的边界之内。类似,编译器将不会阻止您取一个标量变量的地址并对它执行指针运算,即使它无法预测结果所产生的指针所指向哪个变量。越界指针和指向未知值的指针是两个常见的错误根源。当你使用指针运算时,必须小心,确信运算结果将指向有意义的东西。(摘之C和指针)。