设为首页 加入收藏

TOP

8.3.2 指针的算术运算
2013-10-12 09:24:21 来源: 作者: 【 】 浏览:135
Tags:8.3.2 指针 算术 运算

8.3.2  指针的算术运算

指针可以做加法和减法的算术运算,相当于指针的位置从这一位置向后或向前移动若干个单元。这里移动的单元,指的是可以存储相应的变量的内存空间。下面的实例可以说明指针算术运算的作用。

提示:指针的加减法运算是基于指针所代表的存储单元为单位,而不是以字节为单位。

【范例8-6】指针的算术运算,实例代码如下所示。

实例代码8-6

  1. 01  #include <stdio.h> 
  2. 02  int main()  
  3. 03  {  
  4. 04     int i;                               /*定义一个循环变量i。*/  
  5. 05     int *p;                          /*定义一个指向整型变量的指针。*/  
  6. 06     int a[10];                           /*定义一个整型的数组。*/  
  7. 07     for(i=0;i<10;i++)                    /*变量i从0~9执行循环。*/  
  8. 08     {  
  9. 09        a[i]= i +10;                      /*对数组进行赋值。*/  
  10. 10     }  
  11. 11     p=a;                             /*将数组a的指针赋值给p。*/  
  12. 12     for(i=0;i<10;i++)                    /*进行10次循环。*/  
  13. 13     {  
  14. 14        printf("%d  ",*p);                /*输出指针p指向的值。*/  
  15. 15        p++;                          /*指针p向后移动一个单元。*/  
  16. 16     }  
  17. 17      printf("\n",*p);                    /*输出一个换行。*/  
  18. 18      pp=p-4;                          /*指针向前移动4个单元。*/  
  19. 19      printf("%d  ",*p);                  /*输出指针p指向的值。*/  
  20. 20      pp=p-3;                          /*指针向前移动3个单元。*/  
  21. 21      printf("%d  ",*p);                  /*输出指针p指向的值。*/  
  22. 22      pp=p+5;                          /*指针向后移动5个单元。*/  
  23. 23      printf("%d  \n",*p);                /*输出指针p指向的值。*/  
  24. 24      return 0;  
  25. 25  }  

【执行结果】输入下面的命令,编译这个程序。
  1. gcc 8.6.c 

输入下面的命令,运行这个程序。
  1. ./a.out 

程序的运行结果如下所示。
  1. 10  11  12  13  14  15  16  17  18  19  
  2. 16  13  18 

【代码解析】代码第18行、第20行和第22行通过指针的算术运算来访问对应的数组元素。这种访问数组元素的方式与使用下标的方式效果相同。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇8.4.1 二维数组的理解 下一篇8.2.4 指针使用实例

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: