這是問題所在。我試圖創建一個內存圖,我知道一切,直到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