是指针与地址的关系问题运算
写出下面程序的运行结果。[美国著名硬盘公司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。