広告スペース(バナー)
🔧C言語 レッスン
基本文法の基礎8▾
データ構造とオブジェクト指向7▾
構文の基本を深める9▾
関数とデータ構造の応用9▾
アルゴリズムとテストの基礎8▾
文字列・数値操作の応用8▾
実務で役立つ機能8▾
レッスン 29 / 68
高階関数(関数ポインタを引数として渡す)
このレッスンでは、C言語で関数ポインタを引数として渡す高階関数の書き方を学び、処理そのものを部品として扱えるようになることを目標にします。「C言語 関数ポインタ 使い方」で調べている方向けです。
関数の引数として、別の関数のアドレス(関数ポインタ)を渡せることを高階関数と呼びます。「作業のやり方だけを指定して、実際の作業は相手に任せる」ようなイメージです。
サンプルコードでは、bubbleSort()関数がint (*cmp)(int, int)という関数ポインタを引数として受け取り、比較のたびにcmp()を呼び出しています。compareDescending()という別の関数を渡すことで、降順ソートを実現しています。
初心者がよくつまずくのが、関数ポインタの宣言の書き方です。戻り値の型 (*変数名)(引数の型リスト)という独特な構文に、最初は戸惑うことがあります。
実際の開発現場では、コールバック関数として関数ポインタを使う設計が、C言語の柔軟な処理の差し替えを実現する重要なテクニックです。
📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください
🧪 このサイトではC言語を直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。
🎯
ここまでできればゴール達成!
並び替えのルールを自由に切り替えられる、柔軟なソート処理が作れるようになります。
並び替えのルールを自由に切り替えられる、柔軟なソート処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)