第3講 C言語の基本
第5話 =の意味
コード再掲
#include<stdio.h> //秘密の道具箱から、printf()という社員(関数)を借りるために必要
int main(){
  int a; //整数を入れる箱aを用意
  a=1; //整数を入れる箱aに1を入れる。
  a=a+2;
  printf("%d\n",a); //箱aの中身を表示
  return(0); //プログラムを閉めるためのお呪い
}
コピペ用添付ファイル
実行画面
3

  a=a+2;
が謎であるとは何は、次のようなものでしょう。
右辺のaを移項すると、
  a-a=2;
から
  0=2;
になってしまうことです。
小学生の人には、ごめんなさい。
意味不明の説明ですね。

この謎を解明するには、
=の左にあるaと=の右にあるaでは、指しているものが違うということと、
=は算数や数学の=(イコール)では決してないということの2つを理解しなければなりません。
C言語では、算数や数学の=に相当するものは==です。

では、=の意味は何でしょうか。
=は←のようにイメージした方がわかりやすいのです。

  a=10; //整数を入れる箱aに10を入れる。

  a←10
001002
であって、あくまで10を箱に入れる操作であって、
決して数学の=(イコール)ではないのです。

では、
  a=a+2;
はどの様に解釈したらよいのでしょうか。
まず、
  a=1; //整数を入れる箱aに1を入れる。
によって、
001002
箱aには1が入っています。
そして、=の左にないとき以外はaは箱そのもの005ではなく、
その箱に入っている1を意味していました。
したがって、
  a=a+2;

  a=1+2;
ですし、=は本来は←
ですから、
  a←1+2;
を意味しているわけで、
結局aには1+2の合計の3が入ることになります。
ですから、
  a=a+2;
は謎でも何でもないのです。

この使い方をすれば、例えば1+2+3+・・・+10のような計算をさせることもできます。
では皆さん、実行画面が
1+2+3+4+5+6+7+8+9+10=55
となるようなプログラムを考えてください
  printf("%d\n",a); //箱aの中身を表示

  printf("1+2+3+4+5+6+7+8+9+10=%d\n",a); //箱aの中身を表示
とします。理由は、""の中身はそのままコンソールに表示され、
%dのところだけが、aの中身がコピーされ10進数で示されるからです。



第4話へ   第6話へ
 
002

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

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