関数の戻り値とは何のことでしょうか int a=printf()の表現になれましょう



ソーラー「よぉし 自作関数 void newmadefunction(void)


いい出来だね💖


#include <stdio.h>


void newmadefunction(void){

printf("今日もよいC言語日和です。\n");

return ;

}


int main (void){

newmadefunction();

return 0;

}


プログラムの実行結果


今日もよいC言語日和です。


ソーラー「あ~心が和むねぇ~」


しみじみと鑑賞してみる。


アレサ「いいですの 自作関数 」


🌞  🌞  🌞




のんびりした時間がながれていきます。




ソーラー「ところで


void newmadefunction(void){

printf("今日もよいC言語日和です。\n");

return ;

}


のreturn;は

なぜreturn 0;でないのかな?」


アレサ「そういえばそうですの


なぜでしょうか?」


ソーラー「それに


なぜ


void newmadefunction(void)


のように


voidがつかわれているのかも


きになるかな。


よ~し


さっそく調べてみよっかな~」


アレサ「はいっ ソーラーさん」



🌞  🌞  🌞



ソーラー「おおっ 大分  調べることができたね。」


アレサ「関数に関して新たな情報が


たくさん得られましたですの」


ソーラー「😊まずはみなさん 次のプログラムをご覧ください


#include <stdio.h>


int main(void) {

int a=printf("hello\n");

printf("%d\n",a);

return 0;

}


プログラムの実行結果


hello

6


ソーラー「


この


int a=printf("hello\n");

printf("%d\n",a);


に注目してください。


まるで変数aに


int a=6;


のように


数値を代入しているかのように


int a=printf("hello\n");



int型の変数aに


printf("hello\n")


が代入できています。


そして


変数aにprintf("hello\n")を代入した後


変数aに格納されたデータを表示する


printf("%d\n",a);


を実行すると


6という数値が表示されています。


つまり🌞


printf("hello\n")は数値なのです。」


アレサ「そうなんですの


一般に


数学における関数f(x)がxの値によって


いろいろな値を持つように


             😊プログラム上の関数も戻り値という値をもちます😊


printf関数も引数に応じて


いろいろな戻り値をもちます。


今のプログラムの


printf("hello\n")の場合は6が戻り値となっています


ここで

printf("hello\n");を

printf("sunshine\n");にかえてみると


#include <stdio.h>


int main(void) {

int a=printf("sunshine\n");

printf("%d\n",a);

return 0;

}


プログラムの実行結果


sunshine

9


printf("sunshine\n")の戻り値は


9となっています。


つまり


printf関数の戻り値は


引数としてかきこまれる💖文字の数💖となっているわけです。


printf("sunshine\n")の場合は


sunshine8文字と\nは1文字とみなされ


合計9文字が引数として

与えられているので


戻り値は


9となっています。」






🐋  🐋



じゃあ


printf("sunshine\n")が数値なら


なぜ


プログラムの実行結果


sunshine

9



sunshine



表示されているのか?


となりますね


実は


printf("sunshine\n")が数値の値すなわち戻り値9


をもつのは


printf("sunshine\n")



実行された後なのです


int a=printf("sunshine\n");


においては


printf("sunshine\n");



実行されるので


コマンドプロンプト画面に


sunshine



表示されることになります


そうすると


戻り値として


printf("sunshine\n")に9がかえされることになります


そののち


int a=printf("sunshine\n");


つまり


int a=9;



実行されるので


変数aに格納される値は9となります






  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る