C言語の関数における引数と戻り値の4つのパターン
本記事では、戻り値と引数の観点から、C言語の関数を分類する方法について詳しく解説します。
C言語の関数は、引数を受け取る場合と受け取らない場合があります。同様に、呼び出し元へ何らかの値を返す場合と、何も返さない場合があります。これらを組み合わせると、関数は次の4つのタイプに分類できます。
- 引数なし・戻り値なしの関数
- 引数なし・戻り値ありの関数
- 引数あり・戻り値なしの関数
- 引数あり・戻り値ありの関数
例1:引数なし・戻り値なしの関数
#include <stdio.h>
void my_function() {
printf("This is a function that takes no argument, and returns nothing.");
}
main() {
my_function();
}
出力結果
This is a function that takes no argument, and returns nothing.
この関数は入力引数を一切受け取らず、戻り値の型も void として宣言されています。そのため、処理を実行するだけで、呼び出し元に何も返しません。
例2:引数なし・戻り値ありの関数
#include <stdio.h>
int my_function() {
printf("This function takes no argument, But returns 50\n");
return 50;
}
main() {
int x;
x = my_function();
printf("Returned Value: %d", x);
}
出力結果
This function takes no argument, But returns 50
Returned Value: 50
この関数は入力引数を受け取りませんが、戻り値の型が int です。return 文によって整数値50を呼び出し元に返し、その値を変数に代入して利用しています。
例3:引数あり・戻り値なしの関数
#include <stdio.h>
void my_function(int x) {
printf("This function is taking %d as argument, but returns nothing", x);
}
main() {
int x;
x = 10;
my_function(x);
}
出力結果
This function is taking 10 as argument, but returns nothing
この関数は整数の引数を受け取りますが、戻り値の型は void です。受け取った値を使って処理(ここでは画面への表示)を行いますが、呼び出し元には何も返しません。
例4:引数あり・戻り値ありの関数
#include <stdio.h>
int my_function(int x) {
printf("This will take an argument, and will return its squared value\n");
return x * x;
}
main() {
int x, res;
x = 12;
res = my_function(12);
printf("Returned Value: %d", res);
}
出力結果
This will take an argument, and will return its squared value
Returned Value: 144
この関数は引数を受け取り、さらに計算結果を戻り値として返します。例では引数12を受け取り、その二乗である144を呼び出し元に返しています。
まとめ
| タイプ | 引数 | 戻り値 |
|---|---|---|
| 例1 | なし | なし(void) |
| 例2 | なし | あり(int) |
| 例3 | あり | なし(void) |
| 例4 | あり | あり(int) |
なお、現代のC標準(C99以降)では main() 関数は int main(void) のように宣言し、最後に return 0; を記述することが推奨されています。また、void 型の関数内で値付きの return 文を使用するとコンパイルエラーになるため、注意が必要です。
-
Pythonのmap関数と辞書を活用して各単語のASCII値の合計を計算する方法
この記事では、map関数と辞書(dict)を組み合わせて、文中の各単語ごとのASCII値の合計、および文全体の合計を計算する方法を解説します。例として、次のような文を考えてみましょう。hi people of the worldこの場合、各単語に対応するASCII値の合計は次のようになります。209 645 213 321 552そして、これらをすべて足した文全体の合計は 1940 となります。処理の流れ基本的な考え方は以下の通りです。map関数とord関数を使って、単語内の各文字のASCII値を取得します。sum関数でそれらの値を合計し、単語ごとのASCII値の合計を求めます。この処理を文内
-
ExcelのVLOOKUP関数で複数の値を返す8つの方法【関数・フィルター活用】
別のワークシートや同じシート内から値を取り出したいとき、真っ先に思い浮かぶのがExcelのVLOOKUP関数ではないでしょうか。しかし、VLOOKUP関数には大きな弱点があります。それは一度に返せる値が1つだけという点です。この関数を使って複数の値を検索・抽出するには、ひと工夫が必要になります。本記事では、その具体的な方法を順を追って解説します。 また、INDEX、SMALL、MATCH、ROW、COLUMNSなどの他のExcel関数を組み合わせれば、複数の値を柔軟に抽出できます。さらに、詳細フィルター(Advanced Filter)、オートフィルター、テーブルとして書式設定といったExce