データ入力とデータ型

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

今回は、代入演算子、
変数にデータを代入する際の注意点についてちょっと。

・データの入力とデータ型

ある変数に任意の値を代入することで、いろいろな処理が行えます。
値には数値、文字、文字列などがあります。
数値にも正の数、負の数、実数、小数などがあります。

変数に値を代入するときには、データの型に注意しましょう。

ここに、int型の変数seisuuがあるとします。

int seisuu;

この変数に代入できる値は整数です。
小数を代入しても、思い通りの処理が行われません。

整数といっても、どんな数でも良いともいえません。
処理系が16ビットの場合、int型はshort型と同じ大きさを持っています。
それよりも大きな値を処理したい場合には、long型などを使うことに
なります。

では、変数に値を代入してみましょう。

int seisuu;
seisuu = 12345;

上記を見て分かるように、
「左辺値」 = 「右辺値」;
のようにします。

イコール記号(=)を一つ使っていますが、
右辺の値を左辺に代入するという意味をもっています。
上記のイコール記号などを代入演算子といいます。

また、変数を宣言するときに値も代入することができます。

int seisuu = 12345;

次に、文字を代入する。

char moji;

moji = 'A';

文字の代入ではアポストロフィー記号(')を使います。
または、アスキーコード表などにある、直接その文字に対応した数値で
入力することができます。

次に、文字列を代入する。

char mojiretsu[10] = "Japan";

文字列の代入ではダブルコーテーションを使います。
または、一文字づつ代入していきます。

上記のように配列に文字列を代入する場合、

mojiretsu = "Japan";

では、思い通りの処理が行われません。
文字型配列に文字列を代入する方法として strcpy() 関数などがあります。

strcpy(mojiretsu, "Japan";

このstrcpy()関数では、文字型配列mojiretsuに"Japan"を
順に代入していきます。

上記を見ると、値を代入するときにはイコール記号を一つ使うことが
分かると思います。

他に、処理の中では、それが等しいか、等しくないかといった
条件判断のときにもイコール記号を使うことがあります。

では、ソースにしてみましょう。
+------------------------------------------------------------+
/* filename=no016-1.c */
/* include */
#include <stdio.h>
/* 関数プロトタイプ宣言 */
char *my_strcpy(char *s, char *t);
/* main */
int main( ){
int i;
char c;
char word[10];
i=12345;
c='A';
my_strcpy(word, "JAPAN");
printf("i=%d\n", i);
printf("c=%c\n", c);
printf("word=%s\n", word);
return 0;/* 終了 */
}
/* 文字列のコピー */
char *my_strcpy(char *s, char *t)
{
int len=0;
while( 1 ){
(*(s+len))=(*(t+len));
if( (*(s+len))=='\0' )
break;
len++;
}
return s;
}
+------------------------------------------------------------+

上記のソースをコンパイルして実行すると以下のように表示されました。
i=12345
c=A
word=JAPAN

戻る