Chinaunix首页 | 论坛 | 博客
  • 博客访问: 55660
  • 博文数量: 51
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2018-08-26 01:30
文章分类

全部博文(51)

文章存档

2020年(2)

2018年(49)

我的朋友

分类: C/C++

2018-08-29 21:23:13


06. 计算下列程序的输出


点击(此处)折叠或打开

  1. /*
  2.  * exercise05.c
  3.  *
  4.  * Created on: 2012-11-5
  5.  * Author: xiaobin
  6.  */


  7. int main(int argc, char* argv[])
  8. {
  9.     int a[3];
  10.     int i;
  11.     for ( i = 0; i < 3; i++)
  12.     {
  13.         a[i] = i;
  14.     }

  15.     int *p, *q;
  16.     p = a;
  17.     q = &a[2];

  18.     printf("%d\n", a[q-p]);

  19.     return 0;
  20. }

 首先,我们要知道数组a的数值情况。


    a是有3个元素的数组,他们分别是a[0] = 0; a[1] = 1; a[2] = 2;

   然后,我们要知道指针p和q的数值情况。

   p是一个指向a数组的指针,那么他的数值就是0。

   q是一个取a数组第3个元素的指针,那么他的数值就是2。


    最后,计算q与p的地址差

    q - p = 2;


    输出结果:(a[2])


 附调试图:




阅读(777) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~