【问题标题】:What value changed if we use increment/decrement on an address? [duplicate]如果我们在地址上使用增量/减量,什么值会发生变化? [复制]
【发布时间】:2017-11-10 05:59:27
【问题描述】:
#include <iostream>
using namespace std;

void test(int x, int *y) {

*y = 5;

}

int main() {
int *a ,b =2 ;
a = &b;

test(*a, a);
a--; // a++ also give different value

这是我很困惑的部分,我知道如果我不放 (a--) 语句,输出将为 5。但是 a-- / a++ 的真正含义是什么,因为有时它给了我不同的价值当我用不同的值测试它时。我偶然发现了这个。

cout<<"d"<<*a<<endl;

}

【问题讨论】:

    标签: c++ reference


    【解决方案1】:

    a 包含指向变量的内存指针。所以它是*a = 5,如果你增加/减少a,那么它将指向内存中具有一些垃圾值的其他地址/位置。这就是你得到的。

    让我们说 a -> [2000] //包含值 5 的内存地址 如果您执行 a++/a-- 那么 a 将指向内存中的 [2004]/[1996] 位置 这有一些垃圾价值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多