[時間割:C言語]『はじめてのC言語完全入門』その4
2008/09/10 01:30 posted by kunkichi
火曜日は『C言語』です。張り切っていってみよう!
今日は11章「変数と定数」から。
技術評論社
売り上げランキング: 420963
- Cでは変数の宣言が必要。
ex) int a とか int a = 1。後者は初期化も一括。 - sizeof で変数やデータ型のメモリ上のサイズを調べることができる。
- 定数の場合はconstで宣言する。ちなみに定数は大文字で定義することが一般的
ex) const int A = 1 - 列挙型。複数の定数をまとめて宣言。これちょっと今までなかったタイプの型だな。
enum { a, b, c } - 列挙された定数=列挙定数は自動的に0,1,2…と値が割り当てられる
- 値を指定することもできる。
ex) enum { a, b=4, c }
この場合、a、b、cはそれぞれ0、4、5となる。つまり、指定した場合でもその次の値は+1。 - 列挙に名前を付けることができる。ex) enum DAY { MONDAY, TUESDAY, WEDNESDAY, … }
これをさらに変数宣言で使用できる。
ex) enum DAY w;
でこれに列挙された定数を代入できる。
ex) w = MONDAY; ・・・上の例だと結局のところ0になる。 - タグの指定と変数宣言は一括で書ける
ex) enum DAY { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } var; - 型自体を作る感じと言った方がわかりやすいかも。
列挙型ってちょっと使いどころがピンとこなかったのだけど、いろいろ調べてみたところ、以下のサイトでなんとなく雰囲気はつかめた感じ。
ポイントをまとめると、
- enum を用いると、 複数の数字に一意な「名前」を 付ける事が出来る。つまり、「名前」で判断すればよいということ。
- フラグをたてるような場合に、フラグ名と値の関連を考えずにフラグ名だけで考えれるので便利。defineとかだとそれを意識しないといけない
- switch文とか特に便利。
- 配列とそろえると連想配列的な使い方も可能。
- 値は整数のみ
- 基本的な手順は以下。
- 列挙型の定義・・・タグを使ってenum型を定義する
- 変数宣言・・・定義された列挙タグを使って変数として定義
- 変数を使う・・・変数に列挙定数を代入したり。
簡単なスクリプトを試しに作ってみた。
#include <stdio.h>
enum weekday { MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY } w;
main()
{
w = WEDNESDAY;
switch(w){
case MONDAY:
printf("月曜日です。\n");
break;
case TUESDAY:
printf("火曜日です。\n");
break;
case WEDNESDAY:
printf("水曜日です。\n");
break;
case THURSDAY:
printf("木曜日です。\n");
break;
case FRIDAY:
printf("金曜日です。\n");
break;
case SATURDAY:
printf("土曜日です。\n");
break;
case SUNDAY:
printf("日曜日です。\n");
break;
}
return 0;
}
内部的には整数だけど確かにこれだと値は意識しなくていいね。






コメント&トラックバック
トラックバックURL: