我發現如果你將一個指針地址賦值給FUNCTION中另一個指針的地址,它不會改變主函數中的in值,但是通過在main中做同樣的事情,它會更改。那麼這是什麼原因呢?在函數中引用另一個指針的C指針
void func(int *a, int *b){
b = a;
}
int main(){
int i= 5, k =6, *a=&i, *b=&k;
printf("%d %d\n",*a,*b); //output 5 6
b = a;
printf("%d %d\n",*a,*b); //output 5 5
a=&i;
b=&k;
func(a,b);
printf("%d %d\n",*a,*b); //output 5 6
printf("%d %d\n",*a,*b); //output 5 6
}
因爲您通過複製傳遞指針,然後更改指針的副本。 – 2015-03-02 21:57:29
順便說一句,你永遠不會調用函數。這是一個複製錯誤? – Barmar 2015-03-02 21:58:31