指针减法一题

写出下面程序的运行结果:

#include <iostream>

using namespace std;

int main()
{
    int a[3];

    a[0] = 1;
    a[1] = 5;
    a[2] = 8;

    int *p, *q;

    p = a;
    q = &a[2];

    cout << q-p << endl;
    cout << a[q-p] << '\n';

    return 0;
}

 

结果:

2
8

 

析:

q-p 的实质是(q的地址值 - p的地址值)/ sizeof(int)

posted @ 2015-02-03 12:31  阿青1987  阅读(158)  评论(0编辑  收藏  举报