変数と定数について

最終更新日:2004-06-13.

今回は、変数にいろいろな値を代入してみましょう。
変数とは、値を記憶しておく入れ物のようなものだと書きました。
この入れ物はいろいろな型があり、その値をきちんと記憶しておく
種類や大きさによって使い分けします。

また、その変数に任意の値を代入するときにも
ちょっとした書き方があります。

・定数

定数は変数に対応するもので、文字通り変化しない値です。
整数、実数、文字、文字列それぞれに定数があります。

int i;
i=123;

整数定数の表現方法にいくつかあります。
10進数、16進数、8進数。

10進数は、普段普通に使っている数ですね。
0から9までの10個の数字を使います。

16進数は、0から9、AからFまでの16個の数字、文字を使用して
表現します。
その際には、0Xや0xを付けて表します。

8進数は0から7までの8個の数字を使用して表現する方法で、
その際、最初にOを付けます。

float f;
f=3.14;

また、Eやeなどを付けた指数表現もできるとのこと。

文字定数は、半角1文字からなります。
使用する際は、以下のように文字定数を'と'ではさみます。

char c;
c='A';

文字列定数は複数の文字からなります。
使用する際には、以下のように"と"ではさみます。

char word[11]="こんにちは";

では、それらをソースで見てみましょう。
+------------------------------------------------------------+
/* filename=no008-1.c */
/* include */
#include <stdio.h>
/* main */
int main( )
{
int i;
char c;
/* 半角アルファベット大文字と小文字の差 */
i='a'-'A';
printf("'A'と'a'の差=%d\n", i);
c='A';
printf("'%c' 0x%02x %d\n", c, c, c);
/* 大文字を小文字に変換 */
c=(c+(char)i);
printf("'%c' 0x%02x %d\n", c, c, c);
return 0;/* 終了 */
}
+------------------------------------------------------------+

上記のソースをコンパイルして実行すると以下のように表示されました。
'A'と'a'の差=32
'A' 0x41 65
'a' 0x61 97
+------------------------------------------------------------+
/* filename=no008-2.c */
/* include */
#include <stdio.h>
#include <string.h>
/* main */
int main( )
{
unsigned short j;
char w[3];
/* 全角文字 */
strcpy(w, "あ");/* 文字列のコピー */
j=w[0]*256;/* 全角文字を数値に */
j=(j+w[1]);
printf("%s 0x%02x%02x %u\n", w, w[0], w[1], j);
j=j+2;/* 任意の全角文字 */
w[0]=j/256;
w[1]=j%256;
printf("%s 0x%02x%02x %u\n", w, w[0], w[1], j);
return 0;/* 終了 */
}
+------------------------------------------------------------+

上記のソースをコンパイルして実行すると以下のように表示されました。
あ 0x82a0 33440
い 0x82a2 33442

戻る