cinをつかって半角英数字1文字分の文字データをchar型の変数に格納する

ソーラー「数値じゃなくて文字もコマンドプロンプト画面から


入力できるかたしかめてみようかな?」


#include <iostream>


using namespace std;


int main() {


char a;


cin >> a;


cout<< a << "\n";


return 0;


}


ビルド実行結果


n(とキーボードから入力すると)

n


ソーラー 「文字もchar型の変数aに格納できるじゃないか?」


まあ できるんじゃないかとはおもっていたんだけど


だって👉」



#include <iostream>


using namespace std;


int main() {


char a = 'n';


cout<< a << "\n";


return 0;


}


ビルド実行結果


n


ソーラー「👉


普通にchar型の変数aに 文字nを格納できていたものね。


cinをつかって


文字をchar型の変数aに格納できないわけもないか・・・



👇今のこのプログラムでは→」


#include <iostream>


using namespace std;


int main() {


char a;


cin >> a;


cout<< a << "\n";


return 0;


}


ビルド実行結果


n(と入力すると)

n



ソーラー「→


cinを使って


char型の変数aのアドレス&aにあてて文字nが格納されているわけだ


そして 変数aに格納された文字データ'n'を


cout出力表示したんだね。」



🍊🍊🍊🍊🍊🍊🍊🍊🍊🍊🍊🍊🍊🍊🍊🍊


以前のエピソードでアドレスについてお話ししましたが


ここでもアドレスについて説明してみます


        ☆char型の変数aのアドレスとは☆



char型の変数aには文字データが1文字格納されますが



そのとき 文字データが格納されるメモリに付けられた番号が


char型の変数aのアドレスとなります


char型の変数aは1バイトの格納容量をもち


例えば


char a='a';


が実行されて


char型の変数aに文字データ'a'が格納されたなら



アドレス番号004FF913のメモリに


01100001 (10進数で表すと97です)


が格納されることになります


文字aの画像データには01100001 (10進数で表すと97です)


が割り振られていて


この


01100001 (10進数で表すと97です)


を用いて文字aの画像データにアクセスすることができるというわけです




int型の変数aのアドレスなら


int型の変数aには整数値が格納されますが


そのとき 整数値が格納されるメモリの中の先頭のメモリに付けられた番号が


int型の変数aのアドレスとなります



int型の変数aは4バイトの格納容量をもち


int a=2;


が実行されたとき


整数値2は


00000000 00000000 00000000 00000010

 👆    👆    👆   👆

1バイト 1バイト  1バイト 1バイト


のようにメモリに格納されています。


メモリの1バイトごとにアドレスはつけられているので


int型の変数aは4つのアドレスをもつことになります。


int型の変数aのアドレスとは


int a=2;


が実行されて


アドレス番号003FFE5Cのメモリに 00000010

アドレス番号003FFE5Dのメモリに 00000000

アドレス番号003FFE5Eのメモリに 00000000

アドレス番号003FFE5Fのメモリに 00000000


のように


数値データ2がメモリに格納されているなら


先頭の


00000010を格納しているメモリのアドレス003FFE5Cになります。


つまり


00000010を格納しているメモリのアドレス003FFE5C

00000000を格納しているメモリのアドレス003FFE5D

00000000を格納しているメモリのアドレス003FFE5E

00000000を格納しているメモリのアドレス003FFE5F


の4つのアドレスを代表した


00000010を格納しているメモリのアドレス003FFE5Cが


変数aのアドレス003FFE5Cとなっているのです。


同様に


float型の変数aのアドレスなら


float型の変数aには実数値が格納されますが


そのとき 実数値が格納されるメモリの中の


先頭のメモリにつけられた番号が


float型の変数aのアドレスとなります


そして 


char型の変数a

int型の変数a

float型の変数a


であっても


変数aのアドレスは&をつかって&aと表されます

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る