C言語 入門 小学生でもわかるC言語2

初日 関数(他に渡す)

「わかりやすく!」がテーマです!

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

広告

↓2016年02月29日発売↓

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

新品価格
¥2,462から
(2016/5/10 22:16時点)

もっと!C、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);
}

■実行結果■

実行結果(e-1-1)

関数を使う時に2ヶ所宣言するのは覚えていますでしょうか?

最初の方に

void func(int);

「int main()」より前の「プロトタイプ宣言」ですね!

そして「int main()」の後に、

void func(int suji);

で関数の内容を書くんでしたね!

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

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

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

関数を使う時は「func()」

func(10);

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

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

void func(int suji){
	printf("%d",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);
}

■実行結果■

実行結果(e-1-2)

同じように

func(suji);

とするだけなので簡単ですね!

変数「suji」は別もの

/*プログラム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);
}

■実行結果■

実行結果(e-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);
}

■実行結果■

実行結果(e-1-4)
void func(int ,int);

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

menseki(tate,yoko);

ここで関数「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);
}

■実行結果■

実行結果(e-1-5)
func('A');

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

void func(char moji);

文字を渡すので「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);
}

■実行結果■

実行結果(e-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]);
	}
}

■実行結果■

実行結果(e-1-7)

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

void func(int[]);

配列を使うので[]カッコをつけます。配列の数は省略できます!

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

func(ary);

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

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

void func(int ary[]);

配列の個数は省略して大丈夫です。

文章の場合

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

void func(char[]);

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

	func(ary);

	return 0;
}

void func(char ary[]){
	printf("ary[5] = %c\n\n",ary[5]);
	printf("ary = %s\n",ary);
}

■実行結果■

実行結果(e-1-8)

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

ary[5] = i

関数「func」内で途中の一文字だけ抜き出してみました!

5番目は・・・。

this i

012345

なので大丈夫そうですね!

配列を数える時は「0」からでしたね!

引数(ひきすう)

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

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

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

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

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

次回

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

□ページの先頭へ□

□目次へ戻る□

広告

↓2014年06月20日発売↓

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

新品価格
¥2,500から
(2016/5/10 22:17時点)

↓2014年10月25日発売↓

超本格! サンプルで覚えるC言語 3Dゲームプログラミング教室

新品価格
¥3,110から
(2016/5/10 22:18時点)

↓2013年07月25日発売↓

小学生からはじめるわくわくプログラミング

新品価格
¥2,052から
(2016/5/10 22:21時点)

↓2016年05月13日発売↓

小学生からはじめるわくわくプログラミング2

新品価格
¥2,052から
(2016/5/10 22:22時点)

もっと!C、C++言語本