小编Lav*_*usa的帖子

以下程序背后的逻辑是什么?

#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;
}
Run Code Online (Sandbox Code Playgroud)

这里p1 = 0x00000007c2affa24 [ 1 ] p2 = 0x00000007c2affa1c [ 4 ](地址和值)但p1-p2 = 2

output is -1 
Run Code Online (Sandbox Code Playgroud)

我无法理解这个逻辑,请帮助我.

c++ visual-c++ c++11 visual-studio-2015

2
推荐指数
3
解决办法
190
查看次数

标签 统计

c++ ×1

c++11 ×1

visual-c++ ×1

visual-studio-2015 ×1