C言語 | C言語入門 | 変数とデータ型

変数は、入力値や計算結果を再利用するために一時的に保存する。

変数の宣言と初期化

変数は、メモリ上の記憶領域に名前を付けたものである。コンパイラーは識別子をアドレスへ対応付け、型に応じて領域を確保する。

 変数1, 変数2, ...;

識別子には英字、数字、アンダースコアを使える。ただし、数字から始めることはできず、予約済みのキーワードも使えない。C言語の識別子は大文字と小文字を区別する。

基本的な型指定子

説明
char 1バイト
int 対象システムに適した整数型
float 単精度浮動小数点数
double 倍精度浮動小数点数

char 以外の正確なサイズは処理系に依存する。サイズが重要な場合は、コンパイラーの資料や sizeof を確認する。

= で値を代入するか、宣言時に初期化する。

int iVariable1 , iVariable2;
iVariable1 = 10;

int iVariable3 = 100;

初期化していないローカル変数の値は不定である。

コード1

#include <stdio.h>

int main() {
 int iVariable1 = 10 , iVariable2;
 iVariable2 = 100;
 return 0;
}

書式指定子

printf() では % で始まる書式指定子を使う。

書式 引数型 出力
%d, %i int 10進整数
%x, %X unsigned int 16進整数
%c int 文字
%s char * 文字列
%f double 浮動小数点数
%e, %E double 指数表記
%g, %G double 短い浮動小数点表記
%% なし パーセント記号

コード2

#include <stdio.h>

int main() {
 int iVariable = 10;
 printf("iVariable = %d\n" , iVariable);
 return 0;
}

型指定子の組み合わせ

追加の指定子で型の範囲や特性を調整できる。

説明
short int int 以下の幅
long int int 以上の幅
long double double 以上の幅

符号付きの値には signed、負の範囲が不要な値には unsigned を使う。

コード3

#include <stdio.h>

int main() {
 signed char chVariable = -1;
 unsigned char uchVariable = 255;
 printf("chVariable = %d\nuchVariable = %d\n" , chVariable , uchVariable);
 return 0;
}

符号なし整数への変換は型の範囲を法として定義される。表現可能範囲を超えた符号付き型への変換は処理系に依存する。