関数の戻り値とは何のことでしょうか 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");



変数aに


printf("hello\n")


が代入できています。


そして


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


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となっています。




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

作者を応援しよう!

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

応援したユーザー

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