1.练习代码
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a[3];
a[0] = 0;
a[1] = 1;
a[2] = 2;
int *p, *q;
p = a;
q = &a[2];
cout << a[q - p] << '\n';
return 0;
}
2.关键点分析
2.1转换过程
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a[3];
a[0] = 0;
a[1] = 1;
a[2] = 2;
int *p, *q;
p = a; //a[0]的地址
q = &a[2]; //a[2]的地址
cout << a[q - p] << '\n'; //a[0]的地址与a[2]的地址距离为2,相减值为2,所以a[2]等于2
return 0;
}