I ♥ WordPress

[時間割:C言語]『はじめてのC言語完全入門』その4
2008/09/10 01:30 posted by kunkichi

火曜日は『C言語』です。張り切っていってみよう!

今日は11章「変数と定数」から。

はじめてのC言語 完全入門 (標準プログラマーズライブラリ)
塚越 一雄
技術評論社
売り上げランキング: 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文とか特に便利。
  • 配列とそろえると連想配列的な使い方も可能。
  • 値は整数のみ
  • 基本的な手順は以下。
    1. 列挙型の定義・・・タグを使ってenum型を定義する
    2. 変数宣言・・・定義された列挙タグを使って変数として定義
    3. 変数を使う・・・変数に列挙定数を代入したり。

簡単なスクリプトを試しに作ってみた。
#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





このページの先頭へ