引き続きC++言語の入門書を読んでます,星姫でーす.
今回はキーワード63手ということで,C++言語のキーワードについて学んでいこうと思います.
六十三手と聞いて,まるで拳法みたいでしょ?(あれ,最初は魔導師をめざしてなかったっけ?)
さて,前回紹介したC++言語の入門書
をお持ちの方は第1章,第1節の「基本的な知識」をご覧ください.
ここでは,変数名として指定できないキーワードが紹介されています.
皆さんがこれまで書いてきたプログラムの中に青い文字があったと思いますが,つまりはその青い文字がキーワードなのです.
C++言語のキーワードは,あるルールのもと処理を行いますが,その数なんと63種あります.
みなさんはこの六十三手を会得することによって,C++言語のコードを十分に読み解くことができるようになるのです!!
キーワード一覧の中から私たちが既に知っているものを挙げてみましょう.
それは int, char, for, return の4つです.
よく使われるキーワードを以下に紹介します.
◆変数の型
bool, char, int, float, double, void
◆型修飾子
unsigned
◆制御文
if, else, while, for, switch, case, break, return
◆値
true, false
計17手といったところでしょうか?
ここで挙げたものは本当によく使われるキーワードなので,必ず覚えておきましょう!
以下はこれらのキーワードの簡単な説明です.
◆変数の型
bool (booleanの略で論理型の意味です) true(真)と false(偽)を値に持ちます.データサイズは最小の 1byteです.
char (characterの略で文字型の意味です) -128〜127 の値を取ります.データサイズは 1byteです.
int (integerの略で整数型の意味です) -2,147,483,648〜2,147,483,647 の値を取ります.データサイズは 4byteです.
float (浮動小数型) およそ10の-38乗〜10の38乗までの有効ケタ数が 6の値を取ります.サイズは 4byteです.
double (倍精度実数型) およそ10の-308乗〜10の308乗までの有効ケタ数が 15の値を取ります.サイズは 8byteです.
void (空の型…何もないということです)使われ方は特殊です,通常は戻り値を使用しない関数の型として使われます.
◆型修飾子
unsigned:上記の型を修飾できます.例えば unsigned int とすることで符号付き整数型から符号なし整数型になります.
◆制御文
if, else, while, for, switch, case, break, return
これら制御文についての説明は,私がするよりもネットで調べた方が理解し易いです.
前回に紹介したC言語のサイトを参考に使い方を学んでください↓ 基本として,はたらきを知るだけです!頑張ってね.
「初心者のためのポイント学習C言語」
http://www9.plala.or.jp/sgwr-t/
◆値
true:0 以外の数値,普通は 1みたい.
false:0です.
いやはや,他サイト様任せですみません
ですが正直言って,今の時代にC言語やC++言語の入門講座を最初から作る人はいないと思います.
なぜなら,すでに存在するサイトで十分理解が出来るからです.
とにかく!これで十七手を会得することができました.さっそく,この十七手を使ったプログラムで遊んでみましょう.
以下のプログラムを書いて,実行してみて下さい.(プログラムの書き方は前回を参照のこと)
新しい表現も入っているので,後で解説を行います.今はコピー&ペーストでOKです.
成功すれば,実行結果は次のようになります.
さて,いくつか新しい表現があるので解説します.
◆using namespace std;とは?
名前空間というこの表現,なぜこんな訳のわからないことをしないといけないのか?
まず巨大なプログラムを想像してください.巨大とは書いたことを忘れるほどコードが多いという意味です.
巨大なプログラムにおいて,どこからでも呼び出す事が出来る関数があったとします.
ある時,それと同じ関数名の関数を作ってしまった場合,意図した結果にならないことがあるのです.
変数についても同じことが言えます.この不具合を解決するために名前空間という表現が生まれました.
プログラム全体からアクセスできる有効範囲をグローバルスコープと呼びますが
これを名前を付けて分割する表現が名前空間になります.
usingは使いますよの意味でしてusing namespace で名前空間が使えるようになります.
std 名前空間にある cout関数や endl関数などを直接関数名で使えるようにするため
using namespace std;と宣言しました.毎回 std:: と書くのがめんどうだからです.
◆//出力関数 void output(int mode, void *vp);とメイン関数の前に何かあるけど何だろう?
void型の使い方は後に説明するとして,こういう風に先に関数を宣言しておく表現を関数プロトタイプと言います.
プログラムは,使用前に関数の型と引数の数,引数それぞれの型を知りたがるので,前もって関数プロトタイプで渡してあげます.
関数プロトタイプをせずに,ここで関数を実装することは可能ですが
頭でっかちはバランスが悪く,見にくいので嫌われます.関数はとにかくプロトタイプ宣言しましょう.
◆変数の初期化について
型の宣言をして,任意の変数名を付けるのは前回と同様ですので理解して下さい.
この時,数値を代入していますが,これを初期値の代入と言います.値の初期化とも言います.
浮動小数の float f = 10E37f; の初期化表現には新しい表現が二つあり,理解に苦しむと思います.
まず一つめ,値の最後にfと付くのは float値の証と思ってください.
二つめ,E37と書かれた場合について,この表現は10の37乗の値と等しいです.
10に掛っていますので,f には10の38乗の値が入ります.
実行結果からも確認してみましょう.
◆関数outputの第2引数の&が示すものとは? void型の説明もします
変数や配列の先頭メモリアドレスをポインタと呼ぶことを思い出して下さい.
変数の前に&を付けると,ポインタとして扱うことができます.ここは第2引数にポインタを渡しているのです.
関数プロトタイプでは,output関数の第2引数は void* 型でしたが,なぜ様々な型のポインタを渡せるのでしょうか?
これが void* 型の素晴らしい所で,汎用ポインタ機能と言います.
どんな型のポインタでも渡すことが出来るのです.便利ですので,何かと使われています.
ここで理解しておくと,今後この表現に出くわしたときにうまく対処できますよ.
◆--デクリメントって何?
ui の値から 1 を引くことと同じ表現です.本当に良く使われるが故,特殊な表現で短くまとめられています.
◆*アスタリスクって何?
output関数の中身について
bool *b; とは論理型のポインタ b を宣言していることを表しています.
cout << *b << endl; とは,ポインタ b が示している変数を出力することを表しています.
変数のポインタを表す&とセットで覚えましょう.
◆switch 文の default: とは?
ディフォルトつまりどの case にも属さない場合の処理のことです.
using, namespace, default と3つ加わり,これでキーワードは二十手を会得したことになります.
このプログラムでは全キーワードの3割が使われていることになるわけで
このプログラムをなめらかに読めた貴方はプログラマ初心者の中でも,上位に位置します.この調子で頑張りましょう!
遊び心はかしこい者の証です.プログラムで色々と試し,結果を見て一喜一憂するあなたには遊び心があります!
プログラマとしての素質は十分です,私と一緒に魔導師をめざしてみませんか?
2009/11/07 初記.
2009/11/08 追加.
2週間ぶりの休日でした.
後輩たちは,研究に進捗がないと怒られていたけど
コンテキストを壊しておいて2,3日で結果を期待するのは間違っていると思います.