重複の可能性:
ポインターを使用したオブジェクトの交換
ポインターを使用してスワッピングを行う方法は知っていますが、次のような別のアプローチを試すと:
/* Pointers */
#include <stdio.h>
int main ()
{
int a=4,b=6;
swap(&a,&b);
printf("A is %d, and B is %d\n",a,b);
return 0;
}
int swap(int *a, int *b)
{
int *temp;
temp = a;
a = b;
b = temp;
return 0;
}
うまくいきません。基本的に、「a」が「b」のアドレスを持つように、スワップ関数はアドレスを変更しています。スワップ関数で値を出力すると、スワップされた値が得られますが、メインには反映されません。関数。誰でも理由を教えてもらえますか?