面试---指针与地址

来源:互联网 发布:java aes加密 key iv 编辑:程序博客网 时间:2024/05/16 13:35

以下程序中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;}

结果:

0x28fefc0x28ff04 //16进制地址值直接运算的结果是8!!!但是指针q-p运算得2!!!22Process returned 0 (0x0)   execution time : 0.129 sPress any key to continue.

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

q-p的实际运算是(q地址值 - p地址值)/sizeof(int) = 8/4=2

0 0