您的位置:首页 > 职场人生

面试---指针与地址

2015-09-27 15:24 375 查看
以下程序中a[q-p] 运行结果?

#include <iostream>
using namespace std;
int main()
{
int a[3]={0,1,2};
int *p, *q;
p = a;
q = &a[2];
cout<<p<<endl;
cout<<q<<endl;
cout<<q-p<<endl;// q-p的实际运算是(q地址值 - p地址值)/sizeof(int) = 8/4=2
cout <<a[q-p] <<endl;
return 0;
}


结果:

0x28fefc
0x28ff04 //16进制地址值直接运算的结果是8!!!但是指针q-p运算得2!!!
2
2

Process returned 0 (0x0)   execution time : 0.129 s
Press any key to continue.


0x28fefc - 0x28ff04 = 0x08(16进制),相差是8

q-p的实际运算是(q地址值 - p地址值)/sizeof(int) = 8/4=2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试