第9講 箱の住所を入れる箱(ポインタ)
第8話 奇妙な現象の原因

前話問題
C言語
a[4]だけに代入したはずなのに、
b[4]の値まで変わってのはなぜか。

理由は、簡単です。
  b=a;
によって、bのaの番地(アドレス005E3EC0)が代入されたため、
箱*aと箱*bは同一の箱になってしまっためです。

*a  a[0]   a[1] a[2] 
005E3EC0 005E3EC4 005E3EC8
*b  b[0]  b[1]  b[2] 
005E3EC0 005E3EC4 005E3EC8


結局、同じ箱にa[0]のレベルと
b[0]のラベルが貼り付けてあることになります。
表側にはa[0]というラベルが、
裏側にはb[0]というラベルが貼り付けてある、
と思ってください。
同じ箱が2つの名称をもっただけということになります。

データの丸ごとコピーの例では、
今ひとつありがたみがわかりません。
しかし、配列ごと社員(子分)にデータを渡したいという場面では、
ポインタが威力を発揮することになります。
配列は、引数(渡すデータ)にすることはできませんが、
配列の住所(アドレス)は、引数にすることができるのです。
配列ごと渡したり、
配列ごと戻す(仕事を依頼人にデータを戻す)
学習は『専門用語なしの C言語 C++ 入門 第2部』
で学ぶ予定になっています。


次講の第10講では、
関数の再帰的使用についてについて学びます。
関数の再帰的使用のテクニックを身につけると、
プログラミンは俄然おもしろくなります。
理由は、自然や社会の本質である、
入れ子式構造に
関数の再帰的使用が相応しているからです。
入れ子式プログラミングによって、
プログラミングの幅は一段と大きくなります。
例えば、数独やハノイの塔などのプログラミングが
可能になります。




第7話へ 第10講第1話へ

a

初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
VC++入門
VBA入門
専門用語なしのVBA入門
VB入門
初心者のためのEclipseによるJava入門