関数の作成
How to Make Function
関数は用意されている標準関数やライブラリで提供される予め用意された関数だけでなく、自分で関数を作成することができます。
int sum( int a, int b ){
int c = a + b;
return c;
}
void main(){
int a;
a = sum(10, 20);
printf("%d\n",a);
}
関数 sum は2つの整数型の引数を入力として、それの和を返す関数です。
関数の作成に必要な要素は以下のものになります。
- 関数の戻り値型、関数名、引数(型および変数名)。
- 戻り値を返すための変数(ここでは変数 c )。
- 引数から戻り値を決める処理。
- return 文で戻り値を返す。
関数を呼び出す側は引数に具体的な値を与えて呼び出します。
課題
- 処理の流れの中で変数がどのような生成され、値が変更され、また消去されていくかをイメージしてみましょう。
- 簡単な関数を自分で作成してみましょう。
- 2つの実数型の引数を入力として、それの積を返す関数 product
- 引数の単位が度の cos 関数を cos2 という名前で
- 1からnまでの和を求める関数total()を作り、main()から呼び出すように実現せよ。
- 正方形の一辺の長さを引数として、その面積を戻り値とする関数 double menseki( double d )を作成せよ。
引数のアドレスわたし
次の引数の渡し方が異なる2種類の関数の違いを確認しましょう。
void exchange( int i, int j ){
int k = i;
i = j;
j = k;
}
void exchange( int &i, int &j ){
int k = i;
i = j;
j = k;
}
void main(){
int i = 1;
int j = 2;
exchange(i,j);
printf("i= %d j= %d\n",i,j);
}
ポインタを使うと、
void exchange( int *i, int *j ){
int k = *i;
*i = *j;
*j = k;
}
void main(){
int i = 1;
int j = 2;
exchange(&i,&j);
printf("i= %d j= %d\n",i,j);
}