【ANSI-C】 C言語なら俺に聞け! Part 127
■ このスレッドは過去ログ倉庫に格納されています
0753デフォルトの名無しさん
2006/06/13(火) 22:07:45Swap関数で数値が入れ替わるのはポインタでiDat1とiDat2のアドレスが引数で指し示されているから
戻り値(代入?)みたいになってiDat1・2に入れ替えられたものが代入されて5と8が入れ替わると言う風に理解しました。
それでわからないのがSwap2関数ですが、これはiDat1とiDat2が引数に入れられても
Swap2に代入しただけでポインタで指し示されていないからSwap2関数の中で数字の入れ替えをしても、
iDat1、iDat2へ反映されておらず数字の入れ替えは起こらないと
理解すればいいのでしょうか。自分は戻り値という表現は正しくないと思います。
Swap1とSwap2の関数の違いが先生に聞いてもよくわからないんで
どなたか、この二つの関数で何が起こっているのか、わかりやすいアドバイスお願いします。
int iDat1=5,iDat2=8;
void Swap(int *p1,int *p2)
{
int iTemp;
iTemp=*p1;
*p1=*p2;
*p2=iTemp;
}
void Swap2(int a,int b)
{
int iTemp;
iTemp=a;
a=b;
b=iTemp;
}
■ このスレッドは過去ログ倉庫に格納されています