第5講 メソッド(1)
第10話 引き数名が異なっていてもよい理由
第7話コード再掲
#include<iostream> //入出力のために組み込む
using namespace std; //coutを使えるようにするために必要
int f(int s, int k, int m); //s:初項 k:交差 m:末項
int main() {
  int
s, k, m, y;
  cout << "キーボーから初項、交差、末項を順に入力して下さい。" << endl;
  cout << "初項=";
  scanf("%d", &s);
  cout << "交差=";
  scanf("%d", &k);
  cout << "末項=";
  scanf("%d", &m);
  y = f(
s, k, m); //社員f()に仕事を命じている
  cout << "初項" << s << "交差" << k << "末項" << m << "の等差数列の和=" << y << endl;
}
int f(int
s, int k, int m) {
  int i, w = 0;
  for (i =
s; i <= m; i += k)w += i;
  return(w);
}

まず、同じ名前ですが、
ssは別の箱であることはおわかりですよね。
sは社長Main()専用の箱です。
それに対して、sは社員f()の専用の箱です。
sという箱は社長室にあり、sという箱は社員が属している部の部屋にあって別の箱です。
箱にマジックで書いた箱の名前がたまたま同じであるだけだと解釈すればよいのです。
そして、ssも違いましたね。
sは箱そのものですし、sは箱の中に入っている数値です。
もし、int.Parse(Console.ReadLine())で
sに5を代入したとすれば、sは5そのものです。
渡しているのは、あくまで箱の中身の値です。
値を受け取るために、社員f()も受け箱として箱sを用意しただけで、
実際に使うときには、箱そのものを使うのではなくて、
箱の中身を使います。
ですから、今の例ではsは5です。
箱なのか箱の中身なのかをちゃんと区別しなければなりません。

引き数名が異なっている理由をはっきり答えましょう。
社員f()が用意するのは、引き渡される値を受け取る私書箱=受け箱にすぎないからです。
その私書箱をどのような名称にしようとそれはf()の自由です。
自分の受け箱をsと呼ぼうが、xと呼ぼうが関係ありません。
値つまり中身を受け取る受け箱にすぎないのですから。
自分の私書箱をどのような名称で呼ぼうが自由ですよね。
自分専用の箱なのですから。


さて、以上でメソッド(1)は終了しますが、
メソッドについてはまだまだ説明しなければならないことがたくさんありますので、
メソッド(2)で再びメソッドに戻ってきます。
第6講では配列、第7講では多次元配列と1次元配列の関係を取り上げ、
第8講でメソッドに戻ります。

第9話へ   第6講第1話へ
 
002

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

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