这是问题所在。我试图创建一个内存图,我知道一切,直到b ++,因为当代码执行时,它将val的值从10更改为4.这是什么原因?指针和参考
#include <iostream>
using namespace std;
void mem(int*& a, int* b){
a --;
b++;
a = new int[3];
a[0] = 3;
a[1] = *b;
a[2] = ++(*b);
}
int main()
{
int data[] = {2, 4, 6, 8};
int *ptrA = data;
for (int i = 0; i < 4; i ++){
(*ptrA)++;
ptrA++;
}
int val = 10;
mem(ptrA, &val);
}
&符号是否为'void mem(int *&a,int * b)'是故意的? – dspfnder