C 言語における仮パラメータと実パラメータの関係は次のとおりです: 仮パラメータは実パラメータの値のコピーです。パラメータの種類に関係なく、サブ関数に渡される仮パラメータは実パラメータの値のみです。したがって、仮パラメータ変数自体の値を変更する場合、それは実際のパラメータとは何の関係もありません。つまり、仮パラメータを変更しても実際のパラメータには影響しません。
ただし、パラメータの型がポインタ型の場合は、ポインタ変数が指すアドレスのデータを変更することで、実際のパラメータのアドレスのデータを変更できます。
したがって、SWAP関数を使用してデータを交換する場合、次の2点を保証する必要があります:
パラメータは、交換するデータを指すポインタ型である必要があります
交換する場合、アドレス内のデータを交換する必要があります。住所そのものではありません。
参照コード:
//間違った交換コード1
voidswap1(inta,intb)//パラメータは交換されるデータへのポインタではありません
{
intt=a;
a=b;
b= t;
}
//交換コード2が間違っています
voidswap2(int*a,int*b)
{
int*t=a;//仮パラメータ変数そのものを交換してください
a=b;
b=t;
}
//正しい交換コード
voidswap(int*a,int*b)
{
intt=*a;//形式的にデータを交換するパラメータ変数のアドレス、ポインタ変数は変更されません
*a=*b;
*b=t;
}
投稿者はより深い理解が必要です関数のパラメータと戻り値の説明~
まず第一に、関数の戻り値は 1 つの変数のみである必要があります。スワップ関数の return(a,b) はコンパイルに合格しない可能性があります~
。同時に、関数のパラメータはアドレス、値、参照の 3 つの形式で渡すことができます。この場合、ポインタ メソッドを使用して、swap の a と b の値を直接変更することをお勧めします。コードは次のとおりです:
void swap(int*a, int*b)
{
int t;
t=*a;
*a=*b;
*b= t;
}
main で呼び出されるメソッドは swap(&a,&b);
以上がCSWAPコインはどの取引所(通貨取引所)に上場されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。