なぜ変数が必要か?
プログラムは,何らかのデータを加工したり,
計算を行います。
したがって計算途上で,
一時的に,データを保管する入れ物が必要です。
この,データを保管する入れ物を
「変数」と呼びます。
入れ物といっても…
入れ物といっても
コップはあるし,財布はあるし,灰皿もあります。
この入れ物の種類を
「データの型」と呼びます。
変数には決められた型のデータしか保管できません。
えっ?
お札を丸めると,コップに入れることができるって?
同変数に入るよう,何らかの操作を施すことを,
「型変換」と呼びます。
丸める操作 = 型変換
すなわち,型変換を施せば,
別の型の変数に入れることができます。
一方,大きな入れ物には,小さな物を
複数個入れることができます。
これは,「共用体」の考え方で実現されます。
この書き方については,
「11章 構造体と共用体」でお話します。
今のところ,お待ち下さい。
変数の意味のまとめ
@変数とは,データを入れる入れ物(容器)である。
A変数には,どんなデータを入れることができるかを示す型がある。
B型変換すれば,他の型の変数にデータを入れることができる。
この3点は,他の言語でも共通です。
型は,種類と大きさ
ペットボトルには液状のものを入れることができますが,
500CCのペットボトルと1リットルのペットボトルでは
入る量が異なります。
ただし,標準的な型のサイズは,処理系によって異なりますが,
以下のような種類があります。
● char 文字型
● int 整数
● long 倍長整数
● float 単精度浮動小数点
● double 倍精度浮動小数点
● String^ 文字列型(ハット(^)に注:C++のとき)
この他,
● unsigned int
● unsigned long
等もあります。
なお,標準的な型のサイズが異なることで,
ある処理系で正常動作していたプログラムが,
別の処理系では,正しい動きをしなくなることもありますので,
注意が必要です。
変数に値を入れる
変数に値を入れる最も簡単な方法は,
代入文です。代入文は次の形で書きます。
代入される変数名 = 値または計算式;
この他にも,代入文の形がありますが,
今はこの形を覚えましょう。
例えば,以下のように書きます。
A = 10; A = 20; C = A;
(問題) Cには,どんな値が入るか?
プラス(+),マイナス(−)等の記号を演算子と呼びます。
式の右辺には,式が許されます
意味 演算子 例
-------------------------------------------
乗算 * C = 20 * 10; (C の値は 200)
除算 / C = 20 / 10; (C の値は 2)
余り % C = 25 % 10; (C の値は 5)
加算 + C = 20 + 10; (C の値は 30)
減算 - C = 20 - 10; (C の値は 10)
マイナス - A = 10; C = -A;(C の値は -10)
プラス + A = 10; C = +A;(C の値は 10)
簡単なプログラム
#include "stdafx.h”
int main(int argc, char* argv[])
{
int a,b; a=10; b=20;
printf("\n*** a = %d, b = %d",
a, b);
}
printf関数の第1引数には,
書式を指定することができます。
ここに指定した例では,%dのところに
整数値を文字列に変換したものが表示されます。
よく出てくる書式指定として,以下のようなものがあります。
● %d, %I : 整数
● %x : 符号なし16進数
● %c : 単一文字
● %s : 文字列
● %f : 浮動小数点
● %e : 指数表記の浮動小数点
最低限,これくらいの書式指定は覚えておきましょうね。
キーボードからの入力
キーボードから入力するには,scanfを用います。
また,指定した変数に値を受け取りますので,
引数は,参照渡しとします。
#include "stdafx.h"
int main(int argc, char* argv[])
{ int a, b;
/* 以下の&は,参照渡しを示す
*/
/*(ここに値を返す) */
printf(“\n a = ”);
scanf(“%d”, &a);
printf("\n b = ");
scanf("%d", &b);
printf("\n a = %d, b = %d",
a,
b);
getchar();getchar();
}
実行すると,
a =
と表示され,入力待ちになりますので,たとえば,
10[ENTER]
と入力します。すると,さらに,
b =
と表示され,入力待ちになりますので,たとえば,
20[ENTER]
と入力します。すると,
a = 10, b = 20
と表示され, a に整数値 10, b に整数値
20
が
設定されたことが分かります。
[発展]
a =
と表示されている状態で,値と値の間に空白をはさみ,
たとえば,
10 20[ENTER]
とキーインして,動きを確認してみましょう。
以下のように表示され,
「 b = 」のところでは,入力待ちにはなりません。
a = 10 20[ENTER]
b =
a = 10, b = 20
計算式を使う
これまでのプログラムを変更して,
計算式を使ってみましょう。
#include "stdafx.h"
int main(int argc, char* argv[])
{ int a, b, c;
printf("\n a = ");
scanf("%d", &a);
printf("\n b = ");
scanf("%d", &b);
c = a + b;
printf("\n a = %d, b = %d, c
= %d",
a, b, c);
getchar();getchar();
}
[演習]
(1) 次のような書式,型を使って
入出力のテストを行いましょう。
@ %x : 符号なし16進数 (unsigned
int)
A %c : 単一文字(char)
B %f : 浮動小数点(float)
(2) 加算だけではなく他の演算子も
使ってみましょう。
-, *, /, %
|
1.C言語の誕生
2.C言語の仲間たち
3.新しい言語をすばやく覚えるには
4.Cでプログラミング
5.データの入れ物 変数の考え方
6.注釈・定数
7.プログラムの実行順序
8.配列
9.C言語特有の代入文・制御構造
10.関数の話
11.構造体と共用体
12.ビット演算
13.プログラムの場所をポインタで
14.ファイルの入出力
15.色々な便利な方法
|