ネットワークエンジニア系ブログ。健康、エンターテイメント、映画・ドラマ、本、キッズ系、FXまで!お役立ち情報を紹介!

GOISBLOG

C言語

C言語で関数の引数の動きをまとめる

更新日:

関数を呼び出す際に、関数へ値を渡すことができます。
この値のことを「引数」や「実引数」と呼びます。

関数を呼び出して引数を渡す場合、関数に引数を受けるための変数定義を記述することを仮引数って呼びます。

ここから、ちょいちょいとめんどくさくなってきましたが、一つ一つ確実にやっていきましょう。

関数での引数の動き

冒頭でも説明したように関数を呼び出す際に値を関数へ渡すことを「引数」といいます。
以下の構文ではまず、プロトタイプ宣言で関数を宣言し、メインで関数を呼び出す際に値(10)を渡します。

ここで注意することはプロトタイプ宣言で宣言した「void」ですが、これは頭に入れといてください

voidは戻り値がない場合に使用する!!

#include <stdio.h>

void kansu(int ope);    /* プロトタイプ宣言 */

int main(void)
{
    kansu(10);          /* 関数の呼び出しと関数に(10)の値を渡す */
    return 0;
}

void kansu(int ope)     /* 関数の本体の定義 */
{
    printf("計算結果:%d\n",ope * ope);
}
計算結果:100

引数で渡された値(10)を関数で処理し、出力結果として「100」の値を出しました。

これが、引数の使い方になります。


TVでも話題になった自宅で無料でオンラインブートキャンプが体験できるようになりました!
※資料ダウンロード(無料)はこちらから!
【CodeCamp(コードキャンプ)】公式案内



引数を複数にした関数の動き

引数は複数指定することができます。
特にこれといって難しくはなく関数の宣言時に「,」で引数を複数作成するイメージとなります。

以下は複数の引数を使用した例となります。

#include <stdio.h>

void kansu(int num1,int num2);         /* プロトタイプ宣言 */

int main(void)
{
    kansu(5,10);       /* 関数の呼び出し */
    return 0;
}
void kansu(int num1,int num2)
{
    printf("%d\n",num1);      /* 引数(num1)を出力 */
    printf("%d\n",num2);      /* 引数(num2)を出力 */
}
5
10

戻り値と引数を使った関数の動き

次は関数に「引数」を渡し、関数で処理した後、呼び出し元に処理した値を渡すことができます。
これを「戻り値」といいます。

そしてここがポイント。

戻り値があるので「void」ではなく、「int」を使用する!

ってな感じです。

そして構文の例を以下に書きました。

#include <stdio.h>

int kansu(int ope);         /* プロトタイプ宣言 */

int main(void)
{
    int num = 5;            /* 変数を定義 */
    printf("呼び出し前のnum:%d\n",num);
    num = kansu(num);       /* 関数の呼び出し */
    printf("呼び出し後のnum:%d\n",num);
    return 0;
}
int kansu(int ope)
{
    return(ope * ope);      /* 戻り値の設定 */
}
呼び出し前のnum:5
呼び出し後のnum:25

こんな感じで関数の「引数」と「戻り値」の動きをまとめてみました。

○エンジニアの道を目指すならこちらもおすすめです!
⇒ネットワークエンジニアへの技術手順書
⇒サーバーエンジニアへの構築手順書

ITエンジニアで就職するならこちらのサイトがおすすめです!
【レバテックキャリア】



この記事が気に入ったら
いいね!しよう

Twitter で



  • この記事を書いた人
  • 最新記事

ネットワークエンジニアとしてまた一児の父として仕事とブログ作成に奮闘中! 自分の身の回りにある興味、趣味をひたすらブログで書きまとめています! 私の子供も発達障害のこともあるので色々調べたことなどアップして少しはお役に立てたらと思っております!

-C言語
-,

Copyright© GOISBLOG , 2017 All Rights Reserved.