第2講 変数の学習
第11話 様々な変数型
int型・float型・double型・string型の他に、
char型・bool型・short型・long型・long long型などの変数型があります。
扱える値の範囲と使用メモリーを表にして示してみます。

変数型 バイト  値の範囲 
 char 1  −128〜127 
 bool 1  falseまたはtrue 
 short 2  -32,768〜32,767 
 long 4  -2,147,483,648〜2,147,483,647 
 float 4  3.4E+/-38(7桁) 
 double 8  1.7E+/-308(15桁) 
 long long 8  -9,223,372,036,854,75,88〜9,223,372,036,854,775,807 

では、char型のプログラムを組んでみましょう。

#include<iostream>
using namespace std;
void main(){
   char a,b;
   a=9;
   cout<<"a="<<
a+0<<endl;
   b=7;
   cout<<"b="<<
b+0<<endl;
   cout<<"a+b="<<a+b<<endl;
   cout<<"a-b="<<a-b<<endl;
   cout<<"a×b="<<a*b<<endl;
}
参考ファイル

実行結果
h

ピンクのところが納得できないと思いますが、
void main(){
   char a,b;
   a=9;
   cout<<"a="<<a<<endl;
   b=7;
   cout<<"b="<<b
<<endl;
   cout<<"a+b="<<a+b<<endl;
   cout<<"a-b="<<a-b<<endl;
   cout<<"a×b="<<a*b<<endl;
}
とすると、
eb
と奇妙な結果になってしまいます。

実は、char型を単独で使うとき、1文字として扱われます。
char型は1文字であれば代入できるのです。
試しに、
void main(){
   char a;
   a='m';
   cout<<"a="<<a<<endl;
   cout<<"a="<<a+0<<endl;
   cout<<"a="<<a+1<<endl;
   a=109;
   cout<<"a="<<a<<endl;
   cout<<"a="<<a+0<<endl;
   cout<<"a="<<a+1<<endl;
}
とすると、
i
となります。
文字『m』にはコード109が割り振られています。
ですから
   a=109;
   cout<<"a="<<a<<endl;
の表示結果が
   a='m';
   cout<<"a="<<a<<endl;
の表示結果と同じになります。
ですから、
   a=109;
   cout<<"a="<<a<<endl;
の2行目はコード109に対応する文字である『m』をa=の右側に表示したことになります。
しかし、
   cout<<"a="<<a+0<<endl;  
の表示結果を見ればお分かりのように、
式(例えばa+0)として使われると、
coutはコード番号109に対応する文字を表示するのではなく、
数値109をストレートに表示するのです。
で、コンソール画面は
i
となるわけです。
つまり、coutは
   cout<<a;
のときは、aに納められた整数値に対応している文字を表示し、
   cout<<a+0;
のときは、a+0の整数値をそのまま表示するようになっているのです。

void main(){
   char a,b;
   a=9;
   cout<<"a="<<a<<endl;
   b=7;
   cout<<"b="<<b<<endl;
   cout<<"a+b="<<a+b<<endl;
   cout<<"a-b="<<a-b<<endl;
   cout<<"a×b="<<a*b<<endl;
}
のとき、
eb
となってしまったのは、
数値9と7に対応する文字が存在しないということなのだと思います。
ちなみに1から100までのコード番号に対応する文字は
mj
となっています。
参考のためにこれを打ち出したプログラムコードも示しておきます。
ただし、内容はfor文とIf文まで学習しないと理解はできません。
#include<iostream>
using namespace std;
void main(){
   for(char i=1;i<101;i++){
      cout<<i+0<<":"<<i<<" ";
      if(i>0 && i%10==0)cout<<endl;
   }
}

第2講はこれで終了して、
第3講のfor文の学習に進むことにしましょう。


第10話へ
 第3講第1話へ

a

魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ