🧩 補足資料:C言語の関数の基本


C言語の関数は、処理をひとまとめにして何度も呼び出せる仕組みです。 プログラムの再利用性・可読性を高めるために使います。


名称 役割 書く場所
関数宣言(プロトタイプ宣言) 関数があることをコンパイラに知らせる mainより上 int add(int a, int b);
関数定義 実際の処理内容を書く mainより下でもOK int add(int a, int b) { return a + b; }
  • 宣言と定義を分けることで、関数を別ファイルに分割できる。
  • 宣言だけをヘッダファイル(.h)に書くのが一般的。

種類 意味
仮引数(parameter) 関数の受け取り側の変数 int add(int a, int b) の a,b
実引数(argument) 関数を呼び出すときに渡す値 add(3, 5) の 3,5

関数に変数のアドレス(場所)を渡すことで、呼び出し元の値を直接変更できます。

  • int* x は「int型のポインタ」
  • *x は「ポインタの指す実際の値」
  • 呼び出し元の変数を直接書き換えることができる

C言語の関数には、値を返す関数と値を返さない手続き(void関数)の2種類があります。

  • return文:関数の実行を終了し、呼び出し元に値を返す。
  • void関数では return を省略可能。

分類 説明
宣言(プロトタイプ) 関数の存在を知らせる int add(int a, int b);
定義 実際の処理を書く { return a + b; }
実引数/仮引数 呼び出す値と受け取る変数 add(3, 5) / int add(int a, int b)
値渡し 値のコピーを渡す。元の変数は変わらない
ポインタ渡し アドレスを渡す。元の変数が変わる
戻り値 処理結果を返す(returnを使う)
void関数 戻り値なしの手続き(画面出力など)

  • 宣言=関数の存在を伝える
  • 定義=関数の中身を書く
  • 引数はコピーか参照かで挙動が変わる
  • ポインタ渡しはC言語の“参照渡し”のようなもの
  • 戻り値の有無で「手続き」と「関数」を区別できる

3科目の点数を入力し、平均点を返す関数と、その平均に応じて評価(A〜D)を返す関数を作れ。

  • getAverage() … 平均値を計算して返す
  • getRank() … 80点以上→A、60点以上→B、40点以上→C、それ以下→D

入力: 80 70 90 出力: (平均値と評価)


配列とその要素数を受け取り、最大値と最小値をポインタ経由で返す関数を作れ。

  • ループで配列を走査し、*min, *max に代入
  • mainで表示する

入力: {3, 9, 2, 5} 出力: 最大値=9, 最小値=2


整数配列と要素数を引数に受け取り、平均値を求めて、その平均より大きい要素だけを出力する関数を作れ。

  • 関数内で平均値を計算
  • 平均より大きい要素をすべて表示

入力: {60, 80, 70, 90} 出力: 平均より大きい値 → 80, 90


文字列と文字を受け取り、その文字がいくつ含まれているか数える関数を作れ。

  • for文で str[i] != '\\0' まで走査
  • 一致したらカウントを増やす

入力: “banana”, 文字 'a' 出力: 文字 'a' は 3 個含まれています


以下の関数を組み合わせて、5人の点数から平均・最高・最低を出力するプログラムを作れ。

  • mainで配列を作り、関数を順に呼び出す
  • 結果を整形して表示

入力: {70, 85, 60, 90, 75} 出力: 平均=76, 最高=90, 最低=60

  • game-engineer/classes/2025/game-development-1/no-03.txt
  • 最終更新: 4カ月前
  • by root