画像(logo)

HOME/[C言語 入門]小学生でもわかるC言語2 目次/二日目 関数(他から受け取る)

広告

[C言語 入門 小学生でもわかるC言語2]
二日目 関数(他から受け取る)

広告

↓発売日:2018年09月22日↓

たった1日で基本が身に付く! C言語 超入門

新品価格
¥2,225から
(2018/10/8 23:10時点)

目次へ戻る

他の関数から数字や文字を受け取る

前回に続いて関数の使い方です。

今回は他の関数から数字や文字を受け取る方法を見ていきましょう!

数字を受け取る

/*二日目 プログラム1*/
#include <stdio.h>

int func(void);

int main(){
	
	int suji;

	suji = func();

	printf("関数funcから受け取った数字 = %d\n",suji);

	return 0;
}

int func(){
	return 10;
}

■実行結果■

画像(ce_2_1)

数字を受け取るのでやっぱり「int」を使います。最初の部分に注目です。

int func(void);

今度は先頭に「int」が付いて()カッコの中は「void」になりました。

うすうす気づかれているかもしれませんが、何も受け渡しがない時には「void」を書きます。

そのまま関数「func」の中身を見てみましょう。

int func(){
	return 10;
}

「return」と書いてあります。

戻るとか、返るとかそんな感じの意味ですよね。

言葉通りにこの「return」によって数字やら文字やらを返してあげます。

それでは元に戻って受け取る為の変数を用意して受け取ってみます。

suji = func();

これで関数「func」から返ってきた値を変数「suji」が受け取る事ができました。

変数など

/*二日目 プログラム2*/
#include <stdio.h>

int func(void);

int main(){
	
	int suji;

	suji = func();

	printf("関数funcから受け取った数字 = %d\n",suji);

	return 0;
}

int func(){
	int suji = 100;
	return suji;
}

■実行結果■

画像(ce_2_2)

もちろん変数でも大丈夫です!

広告

計算を返す

/*二日目 プログラム3*/
#include <stdio.h>

int func(void);

int main(){
	
	int suji;

	suji = func();

	printf("関数funcから受け取った数字 = %d\n",suji);

	return 0;
}

int func(){
	int suji2 = 10;
	int suji3 = 20;

	return suji2 + suji3;
}

■実行結果■

画像(ce_2_3)

計算を返すのも大丈夫です。

1つしか返せません!

今までの経験からなんとなく

return suji2,suji3;

このように「,」で区切って2つ以上の数を返したいトコロですが、これはできません・・・。

注意です。

受け取った値を直接使用する

/*二日目 プログラム4*/
#include <stdio.h>

int func(void);

int main(){
	if(func()){
		printf("hello\n");
	}

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

	return 0;
}

int func(){
	return 1; 
}

■実行結果■

画像(ce_2_4)

ちょっとなれないとややこしいですが、受け取った値を変数などに保存せず直接使う事もできます。

「int main()」のお話

そういえば・・・。見覚えあるカタチですよね!

そうです。

int main(){

	return 0;
}

最初の方からお世話になっていた、「int main()」に同じような事が書いてますね!

実は「main」も関数の一つです。

その役目は、ここからプログラムを始めます!という役目をしています。

そしてやっぱり値をどこからか受け取ったり返したりしているのですが・・・、そこの解説はまたの機会にしたいと思います。

文字を受け取る

最後に一文字を受け取ってみましょう。

/*二日目 プログラム5*/
#include <stdio.h>

char func(void);

int main(){
	
	char moji;

	moji = func();

	printf("関数funcから受け取った文字 = %c\n",moji);

	return 0;
}

char func(){
	return 'A';
}

■実行結果■

画像(ce_2_5)

一文字を受け取る時は「char」!

今までやってきた事なので大丈夫ですね!

戻り値(もどりち)

今回は他の関数から数字や文字を受け取るやり方を学びました。

この受け取る数字や文字の事を戻り値(もどりち)っていいます!

なんとなーく覚えましょう!

標準関数の戻り値

実はprintf関数やscanf関数にも戻り値は存在します。

少し試してみましょう。

/*二日目 プログラム6*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(){
	int suji;
	int modoriti,modoriti2;

	modoriti = printf("hello");

	printf("\n数字を入力してください > ");

	modoriti2 = scanf("%d",&suji);

	printf("\n");

	printf("suji = %d\n",suji);
	printf("printfの戻り値 = %d\n",modoriti);
	printf("scanfの戻り値 = %d\n",modoriti2);
	
	return 0;
}

■実行結果■

画像(ce_2_6)

こんな結果になりました。

結論から言いますと、

printfは成功したら出力した文字数を失敗したら0を戻り値として返します。

scanfは成功したら読み込んだ項目数を失敗したら0を戻り値として返します。

細かい説明は省きますが、scanfのような関数はセキュリティ上で問題があるのでこの戻り値の結果でエラーが出ていないか?など確認する必要があるのです。

ただプログラムの入門段階でそこまでやってしまうと、とても大変なので戻り値の値を無視するみたいな意味の(void)というのを先頭につけていたのです。

配列や文章

この場合は渡す時と同じようにはいかないので注意です。

詳しくは後半学ぶポインタの所で解説します!

次回

三日目 関数(まとめ)

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓発売日:2016年02月29日↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2018/10/8 23:25時点)

↓発売日:2018年06月22日↓

スッキリわかるC言語入門

新品価格
¥2,916から
(2018/10/8 23:15時点)

↓発売日:2018年03月09日↓

C言語本格入門 ~基礎知識からコンピュータの本質まで

新品価格
¥3,218から
(2018/10/8 23:16時点)

↓発売日:2017年06月14日↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2018/10/8 23:17時点)

↓発売日:2018年05月21日↓

作って身につく C言語入門

新品価格
¥2,462から
(2018/10/8 23:18時点)

↓発売日:2017年12月07日↓

新・標準プログラマーズライブラリ C言語 ポインタ完全制覇

新品価格
¥2,678から
(2018/10/8 23:19時点)

↓発売日:2017年02月08日↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2018/10/8 23:20時点)

↓発売日:2017年09月26日↓

かんたん C言語 [改訂2版] (プログラミングの教科書)

新品価格
¥2,916から
(2018/10/8 23:22時点)