特集PC技術

納得C言語

 

[第2回]データ型


1.変数とは

変数とはコンピュータのメモリ上に用意された作業エリアでメモリ上にあるデータを収める箱だと思ってください。

メモリーのイメージ

変数の宣言
int main()
{
	int i:	//(1)変数の宣言
	  :
	(中略)
	  :
	return 0;
}

このように記述すると、メモリ上に「i」という名前をもったデータを収める箱が作られます。「int」というのは型名と呼ばれているものです。詳しくは次項で説明します。C言語ではこの変数を使ってデータを扱っていきます。
プログラムを作成するときに変数を使いたい場合は、main文の一番初め(プログラム内(1))に宣言しておく必要があります。宣言を行わないと変数を使うことができませんので注意してください。普通の箱でも箱の置く場所がないとその箱は使うことができませんからね。
今回は変数名に「i」と名づけて宣言しました。変数名は自分自身で好きなように名前をつけて宣言することができますが、以下のようなルールがあります。

変数名のルール

・先頭は必ず英字及び「 _ 」(アンダーバー)
・大文字と小文字は区別される
・ifやforなど(ifやforの説明はあとで行ないます)予約語と呼ばれているものは使用不可

これらのルールさえ守れば「abcdefghijklmnopqrstuvwxyz」などのちょっといい加減(?)な変数名をつけても構いません。ですがなるべく分かりやすく、短い変数名が良いでしょう。
何故ならあとでプログラムを見返すときに「なんじゃこりゃ?」と自分でつけた変数名がどのような役割をしているか分からなくなる可能性が大きいからです。そう考えると短い変数名の方がいいですよね。

変数の初期化

更に変数を宣言したときに、データを収める箱の中にはどんな値が入っているのか分からないので、その値を捨てる必要があります。元からあった値を捨てて箱の中に新たな値を入れることを変数の初期化といい、変数を使うときにはこの作業を必ず行ってからプログラムを作りましょう。そうしないでプログラムを組むと大変な事が起こったりして・・・


2.データ型の必要性

データ型とは、変数を扱う際に変数に見合った大きさのメモリサイズを決定することを言います。データ型を定義しないと果たしてどうなってしまうのか?

A「データ型を定義しないとどうなっちゃうの?」
B「エラーが出てしまうね」
A「何で?」
B「上に書いてあるように、メモリの確保ができないからね」
A「そっか! 宣言をしないとメモリの準備ができないのか!」
B「この宣言は必ず最初にやらないとねっ」

二人の会話と前項でも話したとおり、データ型の定義はプログラムを作成する際にとても大切だってことがわかりましたね。次項ではもう少し詳しい説明をします。


3.基本的なデータ型

データ型には、整数型浮動小数点型文字型の3種類があり、表のような型名があります。

データ型の種類

  型名 バイト数 扱える数値の範囲
整数型 short 2bytes -32768~32767
int 4bytes -2147483648~2147483647
long 4bytes -2147483648~2147483647
浮動小数点型 float 4bytes -3.4*1038~3.4*1038
double 8bytes -1.7*10308~1.7*10308
文字型 char 1byte -128~127

バイト数はデータ型が扱うことが出来るメモリサイズ(箱の大きさ)表しています。扱える数値の範囲はデータ型で宣言した箱に入れることができる数値を表しています。扱える数値の範囲を超えた数値を箱の中に入れようとすると、普通の箱と同じように中身があふれてしまいます。中身があふれてしまうと、正しくデータを扱うことが出来ませんので注意しましょう。あとの方に例題が出てくるので、その時に実際にデータサイズを超えた値を代入してみて本当にあふれるかどうかやってみよう。果たしてどんな結果が返ってくるでしょう?


整数型

整数型にはshort型、int型、long型があり、0や100のような整数値を扱うことができます。例題1で整数型の使い方を説明します。

例題1 整数型
#include <stdio.h>

int main()
{
	int i;
	i = 35;  //C言語の「=」は代入という意味になります
	printf("%d",i);
	return 0;
}
結果

例題1の結果

例題ではint型の変数の宣言を行い、初期化した値を出力しています。例題文の中にあるprintf(...)や「%d」は後の回で詳しく説明しますので、今のところはデータを表示する為に必要な「おまじない」みたいなものだと思ってそのまま記述しちゃって下さい。分からなくてもあとでちゃんと説明するから心配ご無用です。


浮動小数点型

浮動小数点型にはfloat型、double型があり、整数値に加え、3.141592や2.71828のような小数点の値を扱うことができます。例題2で浮動小数点型の使い方を説明します

例題2 浮動小数点型
#include <stdio.h>

int main()
{
	double i;
	i = 3.141592
	printf("%f",i);
	return 0;
}
結果

浮動小数点型の表示

例題ではdouble型の変数の宣言を行い、初期化した値を出力しています。出力した結果は必ず小数点で表示され、整数を代入しても小数点で出力されます。


文字型

文字型にはchar型があり、整数型と浮動小数点型では扱えなかった「文字」を扱うことができます。例題3で文字型の使い方を説明します。

例題3 文字型
#include <stdio.h>

int main()
{
	char i;
	i = 'K';
	printf("%c",i);
	return 0;
}
結果

画面にKと表示

例題ではchar型の変数の宣言を行い、初期化した値を出力しています。char型は1バイトの型なので、「あ」のような平仮名・片仮名・漢字(C言語では平仮名・片仮名・漢字を2バイトで扱う)や「qawsedrftgyhujikolp」などの1バイトを超えるような文字は扱えませんので注意しましょう。


4.練習問題

int型変数「i」を宣言し、「3.14159」を代入して表示させたとき、どのように表示されるか考えてみよう!
また、下のプログラムの(1)、(2)を埋めてみよう!

穴埋め問題
#include <stdio.h>

int main()
{
	(1)_________;
	(2)_________________;
	printf("%d",i);
	return 0;
}

解答

コメントの投稿


画像の中に見える文字を入力してください。

トラックバックURL

http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1069

pagetopこのページの先頭へ戻る