n-hirokiのプログラミング軌跡

プログラミングのメモ

C言語入門2 <変数>

変数

C言語を行っていく上でとても重要な変数について学んでいきます。

変数とは箱のようなもので、データや数値などが入ります。

その変数にはいろいろな型があり、その型によって入るデータや数値が異なることをデータ型と言います。

データ型

int(整数) ・・・1、13、100など

float(実数) ・・・1.32、10.236、0.1564など

char(1文字) ・・・A、D、Cなど

 など

変数の定義の仕方

変数を使用するにあたって定義する必要があります。

以下のように記述します。

int x;

int x = 13;

float f;

float f = 13.23;

1行目の「int x;」について見ていきましょう。

これは、「整数型(int型)の'x'という名前の変数を使っていきますよ。」という意味です。

2行目は1行目の文に「=」がついています。

この「=」は、等しいという意味ではなく、「右のデータを左の変数に代入するよ」という意味です。なので'x'に13が入った状態です。この「=」を代入演算子と呼びます。

 

サンプルコード 実際に出力してみましょう。

変数を理解するために簡単なコードを作成します。

 

test01.c

#include <stdio.h>

int main(void){
    int x = 13;
    float y = 56.4;
    char c = 'S';

    printf("x = %d, y = %f, c = %c\n", x, y, c);
    return 0;
}

 

それでは、ターミナルを開いてコンパイルしましょう。

 

実行結果

f:id:n-hiroki_zero:20160605161127p:plain

このようになります。

「y」の値が少しおかしいですね。56.4と表示して欲しいのに「56.400002」になってしまい、「0.000002」分高い値です。

実はプログラムにおいて、少数の計算は私たちが学んだ算数と比べると少し正確ではありません。

例えば、「0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 = 」この答えは通常「1」に思えますが、プログラムでは「1」になりません。

実際に試していませんが「0.99999999」となるのではないでしょうか?

 

あと、小数点をこんなに多く出力したくない場合があります。

その場合は「printf文」を少し工夫すればできます。

 

小数点第2位まで出力してみます。

先ほどのコードの

printf("x = %d, y = %f, c = %c\n", x, y, c);

の部分を、

printf("x = %d, y = %.2f, c = %c\n", x, y, c);

に変更して実行してみてください。

 

実行結果

f:id:n-hiroki_zero:20160605161039p:plain

大丈夫ですね!!

今回は「printf文」の使い方やマニュアルには触れませんが、気になる方は是非調べてみてください。