0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C言語初心者でも自作関数が理解できるよう頑張ってみた

Last updated at Posted at 2022-06-14

C言語を学び始めて2週間ほどで、C言語の自作関数を理解すべく、しつこいばかりに説明を添えたコードです。
自作関数の引数と戻り値の流れが大まかにわかるかと思います。
自作関数に壁を感じる人も多いと思うので参考になれば幸いです。
じゃんけんなのでゲーム感覚でやってみてください。

jisaku_kansu.c
#include<stdio.h>//入出力
#include<stdlib.h>//一般
#include<time.h>//時間(ランダム初期化用)

//関数は基本main関数の上に書く
int randam(void)
//関数rand(void)
//main関数から呼び出されたら初めて実行される
//※voidは引数なしの関数です
//そのためmain関数での呼び出しに引数を使うことができません
{
	srand((unsigned int)time(NULL));
	//乱数初期化

	int rnum;//関数内での変数宣言

	//乱数0-2を変数に代入
	rnum = rand()%3;

	//main関数にrnumの数値を返す。戻り値という
	printf("②randam関数を呼び出しました\n③randam関数の引数はvoidのためありません。\n④rnumの中身:%dを戻り値としてmain関数のxに返します\n",rnum);
	return rnum;
}

int judge(int xx)
//main関数から呼び出されたら初めて実行される。
//引数xをint xxに代入して実行される。
//(int xx)関数内であつかう仮の関数定義。
//特に定めがなくmain関数との兼ね合いもない。
//同じ名前も使えるが、わかりづらくなるので変えたほうが無難
{
	if(xx==0)
		printf("⑥judgeに引数(ひきすう)として代入したxがxxに代入されました。\nxxの中身:%d\n結果は:グー",xx);
	else if(xx==1)
		printf("⑥judgeに引数(ひきすう)として代入した数字xがxxに代入されました。\nxxの中身:%d\n結果は:チョキ",xx);
	else
		printf("⑥judgeに引数(ひきすう)として代入した数字xがxxに代入されました。\nxxの中身:%d\n結果は:パー",xx);

}
int main(void)
//main関数に引数を設定することはできないため常にvoidとなっています。
{
	int x;
	printf("①mainが実行されます\n");
	x = randam();//randam関数呼び出し。void引数なし。戻り値をxに代入
	printf("⑤randamからの戻り値は%dです。judgeに代入します\n",x);
	judge(x);//judge関数を呼び出し。引数x(randamの数値が入っていいるもの)


	getchar();
	getchar();
	return 0;
}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?