C言語初心者向け!実引数の理解と使い方を10ステップで完全解説

C言語初心者向け実引数の解説とサンプルコードC言語
この記事は約9分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

C言語の学習を進めていく中で、実引数という言葉を耳にしたことはありますか?

関数を理解し、活用するためには、実引数の理解が欠かせません。

この記事では、C言語の初学者が実引数をスムーズに理解し、使いこなすためのステップを10個提供します。

基本的な使い方から、実引数の詳細な活用方法、注意点、カスタマイズ例まで、具体的なサンプルコードとともに詳しく解説していきます。

●C言語と実引数の基本

○C言語とは

C言語は、1970年代にAT&Tベル研究所で開発された汎用プログラミング言語です。

そのパフォーマンスの高さと汎用性から、OSの開発や組み込みシステムの制御など、幅広い領域で活用されています。

C言語は関数の使用が基本的な構造となっており、関数の理解はC言語マスターの鍵となります。

○実引数とは

実引数とは、関数を呼び出す際にその関数に渡す値のことを指します。

これらの値は関数内部で仮引数として扱われ、関数の実行に利用されます。

例えば、加算関数で2つの数値を足す場合、それぞれの数値が実引数となります。

●実引数の使い方

○実引数を使う前に知っておくべき事

実引数を適切に使用するには、関数定義と関数呼び出しの仕組みを理解することが重要です。

関数定義では、仮引数として実引数を受け取り、それを用いて処理を行います。

そして、関数呼び出し時に実引数を指定し、それが関数内部に渡されます。

○サンプルコード1:基本的な実引数の使い方

実引数を使って関数を呼び出す基本的な例を紹介します。

このコードでは、引数として2つの整数を加算する関数「add」を定義しています。

そして、関数を呼び出す際には、実引数として数字を2つ指定しています。

#include <stdio.h>

int add(int x, int y) {
    return x + y;
}

int main(void) {
    int sum = add(3, 5);
    printf("%d\n", sum);
    return 0;
}

このコードを実行すると、「8」が出力されます。これは、add関数の実引数として3と5が渡され、その結果がsumに代入されて表示されているからです。

○サンプルコード2:複数の実引数を使う

1つの関数で複数の実引数を使うことも可能です。

下記の例では、引数として3つの整数を加算する関数「addThreeNumbers」を定義し、3つの数字を実引数として渡しています。

#include <stdio.h>

int addThreeNumbers(int x, int y, int z) {
    return x + y + z;
}

int main(void) {
    int sum = addThreeNumbers(3, 5, 7);
    printf("%d\n", sum);
    return 0;
}

このコードを実行すると、「15」が出力されます。

これは、addThreeNumbers関数に実引数として3、5、7が渡され、その合計がsumに代入されて表示されているからです。

●実引数の詳細な使い方

さて、これまで実引数の基本的な使い方を解説してきましたが、実引数の詳細な使い方を解説することで、あなたのC言語のスキルをさらに広げることができます。

具体的なコードとともに、実引数を使ってどのように詳細な操作を行うかを見ていきましょう。

○サンプルコード3:実引数を用いた演算

まず、実引数を使った演算の例を見てみましょう。

このコードでは、二つの整数を受け取る関数を作り、それらを加算するシンプルな演算を実行します。

#include <stdio.h>

void add(int x, int y) {
    int result = x + y;
    printf("%d + %d = %d\n", x, y, result);
}

int main() {
    add(5, 3);
    return 0;
}

上記のコードでは、「add」という名前の関数を定義し、その関数は二つの整数型の引数(xとy)を受け取ります。

関数内で、xとyを加えた結果を「result」に代入し、その結果を表示しています。

この例では、main関数内で「add(5, 3)」として、5と3という二つの実引数を「add」関数に渡し、その結果が表示されます。

このコードを実行すると、「5 + 3 = 8」と表示されます。

これは、「add」関数に5と3という二つの実引数が渡され、その加算結果が表示されているからです。

○サンプルコード4:関数内での実引数の活用

次に、関数内で実引数をどのように活用するか見ていきましょう。

下記のコードでは、受け取った実引数に基づいて、条件分岐を行います。

#include <stdio.h>

void judge(int score) {
    if (score >= 60) {
        printf("合格\n");
    } else {
        printf("不合格\n");
    }
}

int main() {
    judge(65);
    return 0;
}

このコードでは、「judge」という関数を定義し、その関数は整数型の引数「score」を受け取ります。

関数内で、if文を用いてスコアが60以上かどうかを判断し、その結果に応じて「合格」または「不合格」を表示します。

この例では、main関数内で「judge(65)」として、65という実引数を「judge」関数に渡し、その結果が表示されます。

このコードを実行すると、「合格」と表示されます。

これは、「judge」関数に65という実引数が渡され、その数値が60以上であるため、「合格」が表示されているからです。

●実引数の応用例

ここまで、実引数の基本的な使い方から、その詳細な利用方法までを見てきました。

しかし、実引数の可能性はそれだけに留まりません。本章では、より実用的な応用例を、具体的なコードを交えてご紹介します。

○サンプルコード5:配列を実引数として利用する

配列を引数として関数に渡すことで、複数のデータを一度に扱うことが可能になります。

下記のコードでは、整数型の配列を引数として取る関数を定義し、その配列の要素全てを表示する例を表しています。

#include <stdio.h>

void printArray(int array[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", array[i]); // 配列の各要素を表示
    }
    printf("\n");
}

int main() {
    int numbers[] = {1, 2, 3, 4, 5}; // 配列の初期化
    printArray(numbers, 5); // 配列を引数として関数を呼び出す
    return 0;
}

このコードを実行すると、numbers配列の全ての要素が順に表示されます。

つまり、結果は “1 2 3 4 5 “となります。printArray関数では、渡された配列をforループで回して各要素を表示しています。

これにより、一度に複数のデータを関数に渡し、一括して処理することが可能になります。

○サンプルコード6:ポインタを実引数として利用する

ポインタを実引数として利用することで、関数の中で変数の値を直接変更することが可能になります。

下記のコードは、整数のポインタを引数として取る関数を定義し、その値を加算する例を表しています。

#include <stdio.h>

void add(int* p, int x) {
    *p += x; // ポインタが指す値にxを加算
}

int main() {
    int number = 10;
    add(&number, 5); // ポインタを引数として関数を呼び出す
    printf("%d\n", number);
    return 0;
}

このコードを実行すると、numberの値が15と表示されます。

元々の値10に対して、add関数により5が加算されています。

add関数では、引数として受け取ったポインタpを通じて、元の変数の値を直接変更しています。

●注意点と対処法

さて、C言語で実引数を用いる際に押さえておくべき重要な注意点とその対処法について詳しく解説します。

○注意点1:実引数の数と仮引数の数

C言語では、関数を呼び出す際に指定する実引数の数と、関数定義時に設定する仮引数の数が一致していなければなりません。

この一致しない状態が続くと、コンパイラによってエラーメッセージが出力され、プログラムの実行が停止します。

○注意点2:データ型の一致

実引数と仮引数のデータ型も一致させることが重要です。

例えば、仮引数が整数型(int)で定義されている関数に対して、実引数として浮動小数点型(double)を渡すと、予期せぬ結果を引き起こす可能性があります。

○対処法:エラーメッセージの解読と対処

プログラミング初心者にとっては、エラーメッセージの解読は難しいかもしれませんが、これが重要な問題解決の一歩となります。

エラーメッセージは一般的に、何が問題でどこが問題かを表しています。

これを利用して、引数の数やデータ型など、問題の箇所を特定し、適切に修正しましょう。

●カスタマイズ方法

C言語の実引数は、あなたの要求に応じてカスタマイズすることが可能です。

ここでは、実引数のデータ型の変更や順序の変更など、実引数のカスタマイズ方法をいくつか紹介します。

○実引数のデータ型を変更する

一つ目のカスタマイズ方法は、実引数のデータ型を変更することです。

これは、関数が必要とするデータ型に応じて実引数を適切に設定するためのものです。

例えば、関数が整数型(int)の引数を必要とする場合、実引数も整数型(int)である必要があります。

○実引数の順序を変更する

二つ目のカスタマイズ方法は、実引数の順序を変更することです。

これは、関数の仮引数の順序に合わせて、実引数の順序を変更する方法です。

例えば、関数が先に整数型(int)の引数を必要とし、次に文字型(char)の引数を必要とする場合、実引数も同じ順序で設定する必要があります。

まとめ

以上、C言語の実引数について、その基本から応用、注意点、カスタマイズ方法まで、具体的なサンプルコードと共に解説しました。

これらの情報が、あなたがC言語の実引数を理解し、適切に使用するための一助となれば幸いです。