Heloo GUYS ..我將一個別名傳遞給函數中的指針,並且在該函數中我將指針指定給另一個變量。這改變了在主函數中傳遞的指針的地址。我會告訴ü例如我的代碼。這給人的輸出40通過另一個指針更改指針的地址
#include <iostream>
using namespace std;
void foo(int* &p){
int z=40;
p=&z;
}
int main(){
int x=10;
int *p=&x;
foo(p);
cout<<*p;
}
但是當我嘗試做這一切的一個主要功能,則指針並沒有改變的地址,以便爲輸出中..這是我的代碼
#include<iostream>
using namespace std;
int main()
{
int a=1, b=2, c=3;
int *p, *q;
p=&a;
q=*&p;
p=&c;
cout<<*q<<endl;
}
它給出輸出1而不是3.THA的NK ..
你的第一個例子有未定義的行爲。 – juanchopanza
那是因爲你沒有改變'q'。你正在改變'p'。 – NathanOliver
'q = *&p;'和'q = p'一樣;' – molbdnilo