你好,我有簡單的這樣的代碼C++指針值改變
void func(int &x, int y, int* z){
int a = 3;
int b = 1;
cout << *z << endl;
x = *z + b;
cout << *z << endl;
y = *z + x;
z = &a;
cout << "func: x = " << x << endl;
cout << "func: y = " << y << endl;
cout << "func: *z = " << *z << endl;
cout << "func: a = " << a << endl;
cout << "func: b = " << b << endl;
return;
}
int main(){
int a = 2;
int b = 4;
func(b, a, &b);
cout << "main: a = " << a << endl;
cout << "main: b = " << b << endl;
return 0;
}
而對於輸出我得到
4
5
func: x = 5
func: y = 10
func: *z = 3
func: a = 3
func: b = 1
main: a = 2
main: b = 5
所以我的問題是,是什麼原因的* Z變化x = *z + b
後的值,因爲我無法自己弄清楚。
預先感謝您
謝謝:)現在我明白了:) – Bankin