トップ->C言語入門

あなたは

人目のC(C++)言語入門受講生です。

C言語入門内検索

目次
C言語入門〜トップ
C++言語入門〜トップ
0. はじめに

1. 基本的な決まり
   1. 書式
   2. 予約語
   3. 構成
   4. データの形と宣言
   5. 定数と変数
   6. 簡単な演算

2. 入出力
   1. printf
   2. scanf
   3. 練習問題1
   4. 1文字入出力
   5. エスケープシーケンス

3. 制御文
   1. 順次構造
   2. 単一分岐
   3. 多重分岐
   4. ケース構造
   5. 反復構造(while)
   6. 反復構造(do)
   7. 反復構造(for)
   8. 補助制御文
   9. 練習問題
   10.練習問題

4. 配列
   1. 配列とは
   2. 配列の宣言と初期化
   3. 配列の使用法
   4. 練習問題
   5. 文字列
   6. 2次配列と多次元配列
   7. 練習問題

5. 演算子
   1. 演算子の種類
   2. インクリメント演算子とデクリメント演算子
   3. 複合代入演算子
   4. ビット演算子
   5. シフト演算子
   6. キャスト演算子
   7. 順次演算子
   8. 条件演算子(三項演算子)
   9. sizeof演算子
   10.演算子の優先順位
   11.式と値
   12.条件式と値
   13.練習問題

6. ポインタ
   1. ポインタとは
   2. 配列とポインタ
   3. 文字列とポインタ
   4. ポインタのメリット

7. 関数
   1. 関数の作り方
   2. プロトタイプ宣言
   3. 配列とポインタ
   4. 値渡しとアドレス渡し
   5. main関数の引数
   6. 練習問題
   7. 標準関数
   8. 再帰関数

8. プリプロセッサ
   1. プリプロセッサとは
   2. #define, #undef
   3. #include
   4. #if
   5. #error、#warning
   6. マクロ
   7. 定義済みマクロ

9. 変数の有効範囲
   1. 変数の種類
   2. グローバル変数の有効範囲
   3. オート変数の有効範囲
   4. スタティック変数の有効範囲

10. 構造体
   1. 構造体とは
   2. 構造体の宣言
   3. 構造体の使用法
   4. 構造体のポインタ
   5. 構造体の構造体
   6. 構造体と関数
   7. 練習問題

11. 共用体
   1. 共用体とは
   2. 共用体の宣言
   3. 共用体の使用法

12. ファイル
   1. ファイル
   2. ファイル構造体
   3. ファイル作成・オープン
   4. ファイル読み込み
   5. ファイル書き込み
   6. ファイルクローズ
   7. ファイルエラー
   8. ランダムアクセス
   9. 標準入出力
   10. 練習問題
   11. ファイルの検索
   12. ファイルの削除
   13. ファイル名変更
   14. ディレクトリ操作

13. 低水準入出力関数
   1. 高水準入出力関数との違い
   2. ファイル作成
   3. ファイルオープン
   4. ファイル読み込み
   5. ファイル書き込み
   6. ファイルクローズ
   7. 標準入出力
   8. ランダムアクセス
   9. ファイルポインタとファイルディスクリプタ
   10. 練習問題

14. データ構造
   1. データ構造とは
   2. データ構造の種類
   3. 線形リスト
     4. 単方向リスト
     5. 双方向リスト
     6. 環状リスト
   7. ベクター
   8. 木
     9. 二分検索木
   10. スタック
   11. キュー

15 標準関数
   1. 文字分類・文字変換
   2. 文字列操作
   3. データ変換
   4. メモリー操作
   5. 数値演算
   6. ファイル操作(高水準入出力関数)
   7. ファイル操作(低水準入出力関数)
   8. プロセス関係

16 関数ポインタ
   1. 関数ポインタとは
   2. 関数ポインタ
   3. 関数ポインタと引数・戻り値
   4. 関数ポインタの配列

17. そしてその後は (PR)
   1. ヒューマンアカデミー C言語講座
   2. el school C言語講座
   3. C++入門


・ このページの先頭に戻る
・ トップページに戻る


・ このページの先頭に戻る
・ トップページに戻る

トップ-> C言語入門:基本的な決まり-> 1-4. データの型と宣言

←前ページへ :  トップへ :  次ページへ→


1-4. データの型と宣言

  前にも紹介したように、変数を使う場合には宣言をしなくてはなりません。 何を宣言するかというと、どんなデータの型かと、名前、初期値です。初期値は 省略することができます。

  どこで宣言をするかというと、関数の外か、ブロックの最初です。 関数の外で宣言した場合、グローバル変数といい、そのファイルの中のすべての場所で 使用することができます。ただしこれはあまり良い宣言方法ではありません。 なぜならば、複数のプログラマーで大きいプログラムを作っている場合、 不正に書き換えられてしまう可能性があり、バグの発生につながる可能性があるからです。 特別な理由がある場合を除いて、後者のブロックの最初で宣言するべきです。

  次にデータの型について説明します。C言語では次の型が用意されています。

データの種類 バイト長 数値の範囲
整数 (signed) char 1 -128〜+127
整数 unsigned char 1 0〜+255
整数 (signed) short (int) 2 -32768〜+32767
整数 unsigned short (int) 2 0〜+65535
整数 (signed) long (int) 4 -2147483648〜+2147483647
整数 unsigned long (int) 4 0〜+4294967295
整数 (signed) int 2 or 4 (signed) short (int)もしくは
(signed) long(int)と同じ
整数 unsigned int 2 or 4 (signed) short (int)もしくは
(signed) long(int)と同じ
小数 float 4 仮数部232、指数部28
小数 double 8 仮数部252、指数部211
  括弧で書かれている部分は省略することができます。int、unsigned intは、古いコンパイラ では2バイト長、新しいコンパイラでは4バイト長で確保されます。したがって、絶対に 2バイトでなければならない場合は、short、unsigned short、4バイトでなければならない場合は long、unsigned longで宣言します。どちらでも構わない場合はint、unsigned intで宣言します。

  char型は1バイトで、文字1文字を格納するのにちょうど良い大きさです。しかし 数値を格納するにはちょっと小さな変数です。したがって主に1文字を格納するのに 使いますが、文字を格納する変数ではありません。小さな数字しか格納しないのであれば、 char型を使用しても構いません。

  なぜintが2バイトの場合と4バイトの場合があるかは、コンピュータの進化に関係しています。 16bitコンピュータで4バイト長の変数を操作するのには、処理に時間がかかります。 そこで数字のデフォルトをint型として、shortにしていました。しかしどうしてもshortでは 小さい場合にはlong型も使えるようにしました。コンピュータが32bitに進化すると、 long型を処理する場合にもshort型と同じ時間で処理できるようになったため、 数字型変数のデフォルトint型とlong型を同じにしたのです。このような経緯があるため、 数字のデフォルトであるint型がコンパイラによって異なるという問題が発生しました。

  さて、話を戻して、宣言の仕方を解説しましょう。

宣言は最初にお話ししたように、ブロックの最初、もしくは関数の外です。関数の外に 宣言するグローバル変数はもっと先でお話しします。当分の間はブロックの最初で次の ように宣言します。

	int a;		// 変数名「a」をint型で宣言
	char ch1, ch2;	// 変数名「ch1」と「ch2」をchar型で宣言
	unsigned long l;	// 変数名「l」をunsigned long型で宣言

  変数の宣言を行っただけだと、 その変数にはどんな値が入っているかわかりません。


←前ページへ :  トップへ :  次ページへ→