ホームページ > バックエンド開発 > C++ > C/C++ のパラメータ受け渡しテクノロジ

C/C++ のパラメータ受け渡しテクノロジ

WBOY
リリース: 2023-08-31 13:41:06
転載
823 人が閲覧しました

C/C++ のパラメータ受け渡しテクノロジ

C では、2 つの異なる方法でパラメータを渡すことができます。これらは値による呼び出しとアドレスによる呼び出しであり、C では別の手法を使用できます。これを参照による呼び出しと呼びます。それらの効果と仕組みを見てみましょう。

最初に、値による呼び出しを見ていきます。この手法では、パラメータが関数パラメータにコピーされます。したがって、何らかの変更が加えられた場合、実際の値ではなく、コピーされた値が更新されます。

#include <iostream>
using namespace std;
void my_swap(int x, int y) {
   int temp;
   temp = x;
   x = y;
   y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(a, b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
ログイン後にコピー

出力

(a,b) = (10, 40)
(a,b) = (10, 40)
ログイン後にコピー

アドレスによる呼び出しは、変数のアドレスを関数に渡すことによって機能します。したがって、関数がそのアドレスが指す値を更新すると、実際の値も自動的に更新されます。

#include <iostream>
using namespace std;
void my_swap(int *x, int *y) {
   int temp;
   temp = *x;
   *x = *y;
   *y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(&a, &b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
ログイン後にコピー

出力

(a,b) = (10, 40)
(a,b) = (40, 10)
ログイン後にコピー
ログイン後にコピー

アドレス呼び出しと同じですが、ここでは参照呼び出しを使用します。これは C 固有の機能です。パラメータの参照変数を渡す必要があるため、それを更新するには実際の値が更新されます。関数定義の場合のみ、変数名の前に & を付ける必要があります。

#include <iostream>
using namespace std;
void my_swap(int &x, int &y) {
   int temp;
   temp = x;
   x = y;
   y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(a, b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
ログイン後にコピー

出力

(a,b) = (10, 40)
(a,b) = (40, 10)
ログイン後にコピー
ログイン後にコピー

以上がC/C++ のパラメータ受け渡しテクノロジの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート