0Pricing
C Academy · レッスン

ポインタ配列と関数ポインタ

ポインタの配列の概念と、コールバックや効率的なプログラム実行に関数ポインタを使う方法を理解します

「ポインタ配列と関数ポインタ」はCoddyKit上の無料C Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C Academyコースには全3レッスンが含まれています。

ポインター配列と関数ポインター

ポインター配列と関数ポインター

ポインターは複数のメモリアドレスを保存するために配列で使用でき、関数ポインターを使うと関数を引数として渡せます。

このレッスンでは、次のことを学びます。

  • ポインター配列の宣言と使用方法
  • 関数ポインターの仕組み
  • コールバックでの関数ポインターの使用方法
ポインタ配列と関数ポインタ — イラスト1

ポインターの配列とは

ポインターの配列とは

ポインターの配列とは、各要素がポインターである配列です。

例:

int *arr[5];

この配列には、5つの整数ポインターを保存できます。

例:ポインターの配列

例:ポインターの配列

このプログラムでは、ポインターの配列を示します。

#include <stdio.h>

int main() {
    int a = 10, b = 20, c = 30;
    int *arr[3] = {&a, &b, &c};
    for (int i = 0; i < 3; i++) {
        printf("Value: %d\n", *arr[i]);
    }
    return 0;
}

関数ポインターとは

関数ポインターとは

関数ポインターは関数のアドレスを保存し、その関数を動的に呼び出せるようにします。

宣言の例:

int (*funcPtr)(int, int);

これは、2つの整数を受け取り、整数を返す関数へのポインターを定義します。

例:関数ポインター

例:関数ポインター

このプログラムでは、関数ポインターの使用方法を示します。

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main() {
    int (*funcPtr)(int, int) = add;
    printf("Sum: %d\n", funcPtr(5, 10));
    return 0;
}

関数ポインターを別の関数に渡す

関数ポインターを別の関数に渡す

関数ポインターは引数として渡せます。

例:

void execute(int (*operation)(int, int)) { }

この関数は、関数ポインターをパラメーターとして受け取ります。

例:関数ポインターを引数として渡す

例:関数ポインターを引数として渡す

このプログラムでは、関数ポインターをパラメーターとして渡す方法を示します。

#include <stdio.h>

int multiply(int a, int b) {
    return a * b;
}

void execute(int (*operation)(int, int), int x, int y) {
    printf("Result: %d\n", operation(x, y));
}

int main() {
    execute(multiply, 4, 5);
    return 0;
}

関数ポインターの使用例

関数ポインターの使用例

関数ポインターは、次の用途で使用されます。

  • イベント駆動型プログラミングでのコールバック
  • ソート関数(例:qsort())
  • ステートマシンの実装

まとめ

まとめ

このレッスンでは、次のことを学びました。

  • ポインターの配列の使用方法
  • 関数ポインターの宣言と使用方法
  • 関数ポインターを引数として渡す方法

次は、C言語の構造体、共用体、列挙型について学びます。

ポインタ配列と関数ポインタ — イラスト10

よくある質問

「ポインタ配列と関数ポインタ」レッスンは無料ですか?

はい。「ポインタ配列と関数ポインタ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C Academyコースには全3レッスンが含まれています。

「ポインタ配列と関数ポインタ」で何を学びますか?

ポインタの配列の概念と、コールバックや効率的なプログラム実行に関数ポインタを使う方法を理解します ブラウザで直接実行するハンズオンコードでC Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。

「ポインタ配列と関数ポインタ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC Academyレッスンでコードを書いて実行できますか?

はい。すべてのC Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ポインタの概要
  2. 動的メモリ確保
  3. ポインタ配列と関数ポインタ
← C Academyに戻る