第3講 C言語の基本
第9話 引数の具体例
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
void f(
int a); //aを2倍して結果をコンソール画面に表示するという仕事をする社員
int main(){
  f(
10); //社員f()に仕事を命じている
  return(0); //プログラムを閉めるためのお呪い
}
void f(int a){
  printf("%d\n",2*a); //2倍してその結果をコンソール画面に表示
}
コピペ用添付ファイル
実行画面
20

f(10)の10が引数(ひきすう)です。
そして、
void f(int a); //aを2倍して結果をコンソール画面に表示するという仕事をする社員
void f(int a){
intの部分がその引数のタイプが整数型であることを示しています。
f()の仕事は、()内の数値を2倍して結果をコンソール画面に表示することです。

ところで、コード次のように変更すると、実行画面はどうなりますか。
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
void f(int a); //aを2倍して結果をコンソール画面に表示するという仕事をする社員
int main(){
  
int a;
  a=10;

  f(
a); //社員f()に仕事を命じている
  return(0); //プログラムを閉めるためのお呪い
}
void f(int a){
  printf("%d\n",2*a); //箱aの中身を表示
}

もちろん、実行結果は同じです。
  a=10;
  f(a); //社員f()に仕事を命じている
この2行のaは、1行目のaが箱そのものを示していたのに対して、
2行目のaは箱の中身の10を意味していましたね。
中身を見ることを参照するというという説明もしましたね。
箱の中身を参照(コピー)して社員f()に渡しています。
これを参照渡しというのです。

さらに、コードを
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
void f(int
x); //aを2倍して結果をコンソール画面に表示するという仕事をする社員
int main(){
  int a;
  a=10;
  f(
a); //社員f()に仕事を命じている
  return(0); //プログラムを閉めるためのお呪い
}
void f(int
p){
  printf("%d\n",2*
p); //箱aの中身を表示
}
と変更して、Ctrl+F5をしてみて下さい。
今回も結果は同じになりました。
どういうことでしょうか。

が答えです。

引数は、複数指定することもできます。
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
void f(int a,int b); //aを2倍して結果をコンソール画面に表示するという仕事をする社員
int main(){
  int p,q;
  p=10;
  q=20;
  f(p,q); //社員f()に仕事を命じている
  return(0); //プログラムを閉めるためのお呪い
}
void f(int x,int y){
  printf("%d\n",x+y); //和を計算して結果をコンソール画面に表示
}
実行画面
30

ところで、今まで説明してきていませんが、
voidとはどういう意味でしょうか。
これは、空という意味です。
空ってどういうことでしょうか。
実は、社員には結果を報告する社員と結果を報告しない社員の2種類がいます。
何の報告もしないからvoid=空です。
例えは、とても悪いかもしれませんが、
誰々を消せと命令されて、
消すという仕事だけを遂行する場合と
その仕事をしてから結果(成功したなど)を報告する場合があるのです。
今回は、足し算とか倍にするという仕事だけをして、
仕事を命じたmain()には報告していないですね。
報告とはもちろん比喩です。
正確には、値を返すと言います。
返す値のことを戻り値と言います。


第8話へ   第10話へ
 
002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ