C 関数のパラメーターを渡すには、値によるコピーの受け渡し、参照による参照の受け渡し、およびポインターによるポインターの受け渡しの 3 つの方法があります。値による受け渡しは実際のパラメーターには影響しませんが、参照およびポインターによる受け渡しは影響します。
C 関数パラメータを渡す方法
C では、関数パラメータは参照、ポインタ、または値によって渡すことができます。ここでは、各受け渡し方法の概要と実際の例を示します。
値による受け渡し
関数の引数のコピーを渡します。コピーを変更しても、渡される実際のパラメータには影響しません。
void swap(int x, int y) { int temp = x; x = y; y = temp; } int main() { int a = 10, b = 20; std::cout << "Before swap: a = " << a << ", b = " << b << std::endl; swap(a, b); // a 和 b 的副本被传给 swap std::cout << "After swap: a = " << a << ", b = " << b << std::endl; return 0; }
出力:
Before swap: a = 10, b = 20 After swap: a = 10, b = 20
参照渡し
関数パラメータに参照を渡します。参照を変更すると、渡される実際のパラメータに影響します。
void swap(int &x, int &y) { int temp = x; x = y; y = temp; } int main() { int a = 10, b = 20; std::cout << "Before swap: a = " << a << ", b = " << b << std::endl; swap(a, b); // a 和 b 的引用被传给 swap std::cout << "After swap: a = " << a << ", b = " << b << std::endl; return 0; }
出力:
Before swap: a = 10, b = 20 After swap: a = 20, b = 10
ポインタ渡し
関数パラメータのポインタを渡します。ポインタが指すメモリを変更すると、渡される実際のパラメータに影響します。
void swap(int *x, int *y) { int temp = *x; *x = *y; *y = temp; } int main() { int a = 10, b = 20; std::cout << "Before swap: a = " << a << ", b = " << b << std::endl; swap(&a, &b); // a 和 b 的指针被传给 swap std::cout << "After swap: a = " << a << ", b = " << b << std::endl; return 0; }
出力:
Before swap: a = 10, b = 20 After swap: a = 20, b = 10
以上がC++ で関数パラメータを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。