画像(logo)

HOME/[C言語 入門]小学生でもわかるC言語2 目次/初日 関数(他に渡す)

広告

[C言語 入門 小学生でもわかるC言語2]
初日 関数(他に渡す)

広告

↓2016年02月29日発売↓

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

目次へ戻る

関わる数、関数

前回は関数を使って命令をひとまとめにする事を学びました。

でも前にも少し話しましたが関数は関わる数と書きますよね。

言葉通りに関数は他の関数に値を渡したり、逆に他の関数から値を受け取ったりする事ができます。

色んなトコロと関わるワケです。

今回からはそんな関数のカタチを見ていきましょう。

数字を渡す

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

void func(int);

int main(){
	printf("関数funcに数字の10を渡して\n");
	printf("関数funcから出力します!\n\n");

	func(10);

	return 0;
}

void func(int suji){
	printf("%d\n",suji);
}

■実行結果■

画像(ce_1_1)

関数を使う時は「int main()」の前にプロトタイプ宣言、「int main()」の後にその内容でしたね。

同じようにこちらが

void func(int);

「int main()」より前の「プロトタイプ宣言」、

そして「int main()」の後に内容を書いていきます。

void func(int suji){
	/*関数funcの内容を書く*/
}

数字を渡す場合のプロトタイプ宣言は、「void func()」の()カッコの中に渡す種類(int)などを書きます。

先頭は「void」のままです!

今回は数字を渡すので、「void func(int)」とします

関数を使う時は

func(10);

「()」の中に渡したい数字を書きます。

これで関数「func」に「10」という数字を渡す事ができます。続いて関数「func」の内容ですね。

void func(int suji){
	printf("%d\n",suji);
}

ここで「int suji」と変数名のようなものがでてきました。

思った通りこれは変数名です。

関数に受け渡しする数字や文字の変数名はここで決めます。

そして後は「printf()」命令で変数の内容を出力してるだけです。

この時に渡された数字で計算して結果を出力したりする事ができます。

もちろん複数の数字を渡す事もできるので後ほど紹介します。

では引き続き色んなモノを渡してみましょう。

変数を渡す

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

void func(int);

int main(){

	int suji = 10;
	printf("関数funcに変数の「suji」を渡して\n");
	printf("関数funcから出力します!\n\n");

	func(suji);

	return 0;
}

void func(int suji){
	printf("%d\n",suji);
}

■実行結果■

画像(ce_1_2)

変数も同じように渡す事ができます。

同じ名前の変数でも別のもの

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

void func(int);

int main(){

	int suji = 10;
	printf("それぞれ「main」と「func」から出力します!\n\n");

	func(suji);
	
	printf("mainから出力「suji」 = %d\n",suji);

	return 0;
}

void func(int suji){
	suji = 20;
	printf("funcから出力「suji」 = %d\n",suji);
}

■実行結果■

画像(ce_1_3)

変数「suji」は「20」になったはずなのに、「int main()」の中では「10」に戻ってしまいました。

これは元に戻ったのではありません。名前は一緒だけども別の変数ということです。

なので別に同じ変数名「suji」じゃなくて「suji2」でも大丈夫です。

値をコピーしてる感じです。

2つ以上を渡す

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

void menseki(int,int);

int main(){

	int tate = 10,yoko = 20;
	printf("縦×横で面積を計算します!\n\n");

	menseki(tate,yoko);

	return 0;
}

void menseki(int tate,int yoko){
	printf("縦=%d 横=%d\n",tate,yoko);
	printf("面積は%dになります!\n",tate * yoko);
}

■実行結果■

画像(ce_1_4)

2つ以上渡す時は「,」カンマで区切ります。

void menseki(int,int);

使う時も

menseki(tate,yoko);

渡したい順番で変数などを書くだけです。

広告

1文字だけ渡す

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

void func(char);

int main(){

	printf("関数funcに文字を渡します!\n\n");

	func('A');

	return 0;
}

void func(char moji){
	printf("ボクの血液型は%c型です!\n",moji);
}

■実行結果■

画像(ce_1_5)

今回は文字を渡すので「char」をつけます。

void func(char);

あとは数字と変わらずそのままですね!

文字をそのまま渡す時は「'」シングルクォーテーションがつきます。

文字と数字を渡す

/*初日 プログラム6*/
#include <stdio.h>

void func(int,char);

int main(){
	int age = 17;
	char blood = 'B';

	printf("関数funcに文字と数字を渡します!\n\n");

	func(age,blood);

	return 0;
}

void func(int age,char blood){
	printf("ボクは%d才で血液型は%c型です!\n",age,blood);
}

■実行結果■

画像(ce_1_6)

もちろん違う種類の変数でも一緒に渡すことができます。

func(age,blood);

ここで文字の変数「blood」を渡す時に、「'」シングルクォーテーションが付かないことに注意です!

配列と文章

最後に配列と文章を渡す場合を見ていきましょう!

/*初日 プログラム7*/
#include <stdio.h>

void func(int[]);

int main(){
	int ary[5] = {1,2,3,4,5};

	func(ary);

	return 0;
}

void func(int ary[]){
	int i;
	for(i=0;i<5;i++){
		printf("ary[%d] = %d\n",i,ary[i]);
	}
}

■実行結果■

画像(ce_1_7)

まずプロトタイプ宣言ですが

void func(int[]);

配列を使うので[]カッコをつけます。配列の数は書かなくて大丈夫です。

次に「int main()」内で関数「func」に配列「ary」を渡す時ですが、

func(ary);

このように配列名だけで大丈夫です。

そして関数「func」の本体でも

void func(int ary[]){
	int i;
	for(i=0;i<5;i++){
		printf("ary[%d] = %d\n",i,ary[i]);
	}
}

配列の数は書かなくて大丈夫です。

文章の場合

/*初日 プログラム8*/
#include <stdio.h>

void func(char[]);

int main(){
	char ary[30] = "this is a pen";

	func(ary);

	return 0;
}

void func(char ary[]){
	int i;
	for(i=0;i<13;i++){
		printf("[%c]",ary[i]);
	}
	printf("\n");
	printf("%s\n",ary);
}

■実行結果■

画像(ce_1_8)

文章も数字の時とほとんど変わりません!

引数(ひきすう)

初日に少し長くなってしまいました。

今回は他の関数に数字や文字を渡すやり方を学びました。

この渡す数字や文字の事を引数(ひきすう)っていいます!

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

次回は他の関数から値や文字を受け取ってみます。

次回

二日目 関数(他から受け取る)

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓2017年06月16日発売↓

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

新品価格
¥2,700から
(2017/5/1 13:05時点)

↓2014年08月09日発売↓

新・明解C言語 入門編 (明解シリーズ)

新品価格
¥2,484から
(2017/5/1 13:08時点)

↓2016年02月20日発売↓

新・解きながら学ぶC言語

新品価格
¥2,160から
(2017/5/1 13:10時点)

↓2017年02月11日発売↓

C言語プログラミング基本例題88 88

新品価格
¥3,024から
(2017/5/1 13:12時点)

↓2016年12月15日発売↓

Cの絵本 第2版 C言語が好きになる新しい9つの扉

新品価格
¥1,490から
(2017/5/1 13:13時点)

↓2017年02月08日発売↓

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

新品価格
¥2,700から
(2017/5/1 13:15時点)