C 関数でパラメーターを渡すには、参照の受け渡し、値の受け渡し、暗黙的な型変換、const パラメーター、およびデフォルト パラメーターの 5 つの方法があります。参照による受け渡しは効率を向上させ、値による受け渡しはより安全です。暗黙的な型変換により、他の型が関数によって予期される型に自動的に変換されます。const パラメーターにより、特定のパラメーターが誤って変更されることがなくなります。関数型プログラミングでは、関数パラメーターを使用してデータを渡し、操作を実行できます。
C では、パラメータは関数に渡されるデータです。パラメーターの受け渡し方法は、コードのスタイル、パフォーマンス、読みやすさに重要な影響を与えます。
参照渡しは変数へのポインタです。関数がパラメーターを参照渡しすると、関数がパラメーターに加えた変更は元の変数に反映されます。参照渡しでは、関数を呼び出すときにデータをコピーする必要がないため、効率が向上します。
void increment(int& value) { value++; } int main() { int x = 5; increment(x); // 引用传递 cout << x; // 输出 6 }
値の受け渡しでは、パラメーターのコピーが関数に渡されます。関数がこのコピーに加えた変更は、元の変数には影響しません。値渡しは、誤って変更されることを防ぐため、より安全です。
void increment(int value) { value++; } int main() { int x = 5; increment(x); // 值传递 cout << x; // 输出 5(不变) }
パラメーターが値によって渡されると、C は暗黙的な型変換を自動的に実行します。たとえば、関数が int パラメータを予期しているのに char が渡された場合、C は char を int に変換します。
void print(int value) { cout << value; } int main() { char c = 'a'; print(c); // 隐式转换,输出 97('a' 的 ASCII 码) }
const パラメータは関数によって変更できません。 Const パラメーターは偶発的な変更を防ぐため、コードをより安全にするのに役立ちます。
void print(const int& value) { // value 不能被修改 } int main() { const int x = 5; print(x); }
デフォルト パラメータを使用すると、関数を呼び出すときに特定のパラメータを省略できます。デフォルトパラメータは関数パラメータリストの最後に配置する必要があります。
void print(int value, const string& name = "Unknown") { cout << "Name: " << name << ", Value: " << value; } int main() { print(5); // 使用默认参数 print(10, "John"); // 指定参数 }
次の関数型プログラミングのコード例では、関数パラメーターを使用してデータを渡し、操作を実行できます。
#include <iostream> #include <functional> using namespace std; // 接收一个整数并返回其平方的 lambda 函数 auto square = [](int x) { return x * x; }; int main() { // 将 lambda 函数传递给 for_each 函数 vector<int> numbers = {1, 2, 3}; for_each(begin(numbers), end(numbers), square); // 打印平方的值 for (auto num : numbers) { cout << num << " "; } return 0; }
このコード例では、ラムダ関数 square
はパラメータとして for_each
関数に渡され、コンテナ内の各要素に対して二乗演算を実行します。
以上がC++関数パラメータの詳しい解説:関数型プログラミングにおけるパラメータ受け渡しの考え方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。