例子:
inta[3] ={1,2,3};
int* p;
int* q;
p= a;
cout<<"p的地址:"<<p<<endl;
cout<<"p指向的内容:"<<*p<<endl;
q= &a[2];
cout<<"q的地址:"<<q<<endl;
cout<<"q指向的内容:"<<*q<<endl;
cout<<"两个指针的减法:"<<q-p<<endl;
cout<<"两个指针减法的结果作为数组下标:"<<a[q-p]<<endl;
cout<<"两个指针内容的减法结果作为数组下标:"<<a[*q-*p]<<endl;
执行结果:
注意到两个整型指针的地址相差8个字节,但是相减的结果为2,是因为两个指针相减操作会对其结果除以该指针所代表的数据类型的字节数,此处整型数据类型有4个字节,所以指针相减的结果为2.