【发布时间】:2018-06-18 09:00:15
【问题描述】:
#include <iostream>
using namespace std;
int main()
{
int t[4] = { 8, 4, 2, 1 };
int *p1 = t + 2, *p2 = p1 - 1;
p1++;
cout << *p1 - t[p1 - p2] << endl;
return 0;
}
这里 p1 = 0x00000007c2affa24[1] p2 = 0x00000007c2affa1c[4](地址和值)但 p1-p2 = 2
output is -1
我无法理解这个逻辑,请帮助我。
【问题讨论】:
-
指针算法考虑了指针类型。
-
@Bathsheba@Aakash Deep@Killzone Kid@S_Madankar。非常感谢..
-
Protips (1) 所以只允许你标记一个人。是我,因为我是第一个。 (2) 如果答案告诉了你你想知道的,你应该接受。
标签: c++ c++11 visual-c++ visual-studio-2015