是指针与地址的关系问题运算

写出下面程序的运行结果。[美国著名硬盘公司S 2008年4月面试题]

解析:本题考的是指针与地址的关系问题。
本程序结构如下:
(1)先声明了一个整型数组a[3],然后分别给数组赋值。
(2)又声明了两个整数指针p、q,但是并没有定义这两个指针所指向的地址。
(3)使整数指针p的地址指向a(注意a就是a[0]),使整数指针q的地址指向
a[2]。
可实际验证程序如下:

上面的输出结果分别是:

q的实际地址是0x22ff70,p的实际地址是0x22ff68。0x22ff70-0x22ff68=0x08(十六进制减
法),相差是8。
q-p的实际运算是(q的地址值(0x22ff70)-p的地址值(0x22ff68))/sizeof(int),即
8/sizeof(int)=2。
答案:运行结果是2。

posted @ 2017-02-05 17:09  我有一壶酒  阅读(361)  评论(0编辑  收藏  举报