Tips

C言語 定数 【基礎 第5回】

定数

定数とは

C言語で扱われるデータには変数以外にも定数というものがあります。
コード内でそのまま書いた数値や定数であることを宣言したものがこれに当たります。
変数は中身がかわりますが、定数は値が固定化されるため変わりません。そのため値が変わってしまっては
困るようなところで使用します。
定数には「整数定数」と「浮動小数点定数」「文字定数」「文字列定数」「列挙型定数」「記号定数」があります。

◆整数定数

「100」などの通常の整数です。int型扱いになりますが、大きい場合はlong型となります。
元からlong型として扱いたい場合は、末尾に「L」をつけます。例えば「100L」といった具合です。
またunsigned型として扱いたい場合は、末尾に「U」を使用します。

これ以外にも8進数の場合は頭に「0」(ゼロ)をつけ、16進数の場合は「0x」(ゼロエックス)をつます。
「017」や「0xff」のような表現となります。

◆浮動小数点定数

浮動小数点「0.123」はdouble型扱いとなります。末尾に「F」「f」をつけることでfloat型扱いとなります。
「0.123f」のような表現となります。

◆文字定数

文字定数というのは1文字の定数です。文字を表す時はシングルクォーテーションで囲みます。
「‘A’」という形となります。
この文字列定数というのは、ASCIIの文字コードとなります。例えばアルファベットのAはASCIIコードの「65」となり
以下のコードは同じものとなります。

char c = ‘A’;
char c = 65;    

◆文字列定数

文字列定数というのは文字の列です。文字列を表す時はダブルクォーテーションで囲みます。
前に出てきた「”Hello World!!”」がこれに当たります。
文字列定数の時に気に留めておくべきこととして、文字の最後に「�」(エンマークゼロ)が入っているということがあります。
これは文字の終端を意味します。
そのため「”Hello World!!”」は13文字ですがメモリ上では「�」を含めた14文字分の領域が確保されています。

また文字列定数はコンパイルの時に連結させることが可能なので「”Hello ”」「”World!!”」と分けることが可能です。

コードで確認
#include <stdio.h>
int main(void){
	int num = 100;
	long num2 = 200L;
	double num3 = 3.14159265359;
	float num4 = 3.14159265359f;
	char c = 66;
	printf("num:%dn", num);
	printf("num2:%dn", num2);
	printf("num3:%5.11fn", num3);
	printf("num4:%5.11fn", num4);
	printf("c:%cn", c);
	printf("Hello ""World!!""n");
	return 0;
}		     

実行結果は以下のようになります。
~~~~実行結果~~~~
num:100
num2:200
num3:3.14159265359
num4:3.14159274101
c:B
Hello World!!
~~~~~~~~~~~~

整数型に関しては特に違いはありませんが、double型とfloat型で表示結果が異なっています。
これは小数の表現制度の問題で、floatの方がdoubleより表現できる幅が小さいということになります。
文字を表示させるところでは文字コードに対応したアルファベットが表示されています。
最後に文字列を表示させているところでは、文字列がちゃんと連結されて表示されていると思います。

ソースの方を見てみましょう。
変数「num」には整数型定数の100を代入しています。
変数「num2」にはlong型の整数型定数として扱うため末尾に「L」をつけて200を代入しています。
変数「 num3」にはdouble型の浮動小数点定数である3.14159265359を代入しています。
変数「 num4」にはfloat型の浮動小数点定数として扱うため末尾に「f」をつけて3.14159265359を代入しています。
変数「c」には文字定数を代入しています。今回はASCIIの文字コードをそのまま代入しています。
それらを下の行で表示させているのですが、今までに出ていなかったものがあると思います。

まずprintf関数の書式指定子として「%d」以外に「%c」「%f」というのがあると思います。
書式指定子には整数以外dにも小数や文字といったものを指定するためのものが用意されています。
「%d」は整数でしたが、「%c」は一文字を表し。[%s」は文字列をあらわします。
[%f」は小数の表現となります。

またdouble型とfloat型の表示の際には「5.11」といった指定があると思います。
最初の「5」は最小フィールド幅といい、画面に表示する最小文字数を指定します。この長さに満たない場合は、
右詰めとなります。
「.」を挟んで後ろに書いてある数値が精度指定となります。ここは文字を表示させる場合は、最大文字数となり
整数の場合、最小桁数となります。また浮動小数の場合は、小数点以下の桁数の指定となります。

実践力が身につくC言語講座 連載リンク

競技プログラミングをイメージしたライブラリ活用講座
競技プログラミング風-標準Cライブラリ入門 連載

アルゴリズムをマスターして技術力アップ!
実践アルゴリズム講座 連載

パズルゲームの解析をテーマにしたC++講座
ゲーム解析プログラミング 連載

Recent News

Recent Tips

Tag Search