C++ 如果我们对地址使用递增/递减,会改变什么值? #包括 使用名称空间std; 无效测试(整数x,整数*y){ *y=5; } int main(){ int*a,b=2; a=&b; 试验(*a,a); a--;//a++也给出不同的值

C++ 如果我们对地址使用递增/递减,会改变什么值? #包括 使用名称空间std; 无效测试(整数x,整数*y){ *y=5; } int main(){ int*a,b=2; a=&b; 试验(*a,a); a--;//a++也给出不同的值,c++,reference,C++,Reference,这是我非常困惑的部分,我知道如果我不放(a-)语句,输出将是5。但是--/a++的真正含义是什么,因为有时它会给我不同的值,因为我用不同的值测试它。我偶然发现了这一点 #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 di

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

#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

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

比方说 a->[2000]//包含值5的内存地址 如果你做一个++/a--那么a将指向内存中的[2004]/[1996]位置 它有一些垃圾价值

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

}