わたしと技術とマネジメント、およびゲーム

ゲーム制作記アンドゲーム随筆

C言語を学ぼう③

就職記念、ということでC言語を学ぼう第三回。

 

今回は変数とscanfについてやってみたいと思います。

 

以下のコードを記述して、

Web-based online coding environment | paiza.IO

で実行してみましょう。

 

今回はキーボードで入力した数字を表示させるプログラミングなので、ページ下部の実行ボタンの下にある「入力」窓に適当な数字(4ケタぐらいまで)を入れて実行ボタンを押してください。

 

#include <stdio.h>
int main(void){
    int a;

    scanf("%d", &a);

    printf("%d", a);

    return 0;
}

 

さて、いかがだったでしょうか。入力した数字が表示されたでしょうか。

では、コードの中身を見ていきましょう。

 

1. int aとは

int aというのが出てきました。

前回int mainについて簡単に説明しましたが、同じ"int"です。

int aとは、「整数型の変数aを定義する」という意味です。

 

変数?

 

変数と聞くと、何を想像するでしょうか。刻一刻と値が変わる数字を想像しますか?

 

残念、それは乱数だ。

 

変数という言葉がよくない気がしますが、よく「変数は値を入れる箱」と例えられます。

 

hako.はこ。箱。

 

つまり、aという箱には整数を入れられますよー。ということです。この変数はどんな言語でも出てくるので、覚えてください(逆に言うと出てきまくるので簡単に覚えます)。

 

最初に説明しましたが、C言語は型をしっかりと明記しなくてはなりません。ほかの言語では、var型といって、なんでも対応してやるぜ!という型があります。数字でも文字でもなんでもぶちこめます。ただ、PCがそれを読むときにいちいち何が入っているのか確認しなくてはならないので処理速度が落ちます。PCのためにも型をしっかり宣言しよう、というのがC言語です。

 

実はaというのは俺が作った箱なので、名前は何でも構いません。fajkgjavgsdafghfdという箱を作っても構いません。が、引っ越しをするときに「衣類」と書かれた段ボールは扱いやすいですが、fajkgjavgsdafghfdと書かれた箱は中身がなんなのかわからないし、薄気味悪くて扱いづらいので、何を入れるのかに応じてわかりやすい名前をつけましょう。

 

とにかくint aで「整数を入れる箱」を作った、と考えましょう。

 

2. scanfってなに?

新しい単語が出てきました。scanf。うーん、最初はそこそこ使いますが、だんだん使わなくなる、かなぁ。

 

これもstdio.hの中にある命令の一つです。キーボードからの入力を受け付けるために使います。

 

では、その後ろにある("%d", &a)とはなんでしょう。

 

%dとは、int型の整数を表しています。

 

はぁ?

 

scanf("%d", &a);

↑この命令を一文で表すと、「標準入力(キーボード入力)でもらった整数をaという変数に格納します」という意味になります。

 

??

 

&はとりあえず気にしないでください。これはC言語で一番難しい部分なので、今説明するとパンクします。&は忘れてください。とりあえずくっつけるものと理解してください。

 

まず、scanfはダブルクオーテーションでくくられた中のものを見ます。それをカンマの後にある&+箱の中に入れておく、という命令です。

 

%dは整数を表す(そういう表記ルールなので)わけですが、scanfではキーボード入力で入れた整数が%dにあたるので、それをaの箱に入れてますよ~。ということなのです。

 

%dは次の項目の方がわかりやすいので次行きます。

 

3. printf("%d", a)について 

 

俺のprintfがなんかおかしい!

 

printfはダブルクオーテーションの中を表示するんでしたね。つまり%dを表示させる。この%dはカンマの後ろの「a」の中身を表示させる。という命令です。

 

ということは……

 

int型の変数の中身を表示させたい場合、%dを用いなくてはならない!ということです。

 

printf("a");と書けばいいじゃないか!

 

と思う方もいるかもしれませんが、それだと「a」が出てきます。aの中身は%dを用いないと表示できません。

しっかりと理解した方がいいですが、変数aを表示させるために、変数aに入力した値を入れるために、その受け皿としていったん「%d」を置いておく、ぐらいのイメージで考えましょう。これはC言語の文法なので、慣れることが大切です(無責任)。

 

ちなみにchar型(文字型)の変数を定義するならchar a、それを表示させるならprintf("%c", a)という表記になります。型に応じて%dの部分は変化します。

 

今回覚えてほしいのは

・文字や数字を格納する箱「変数」というものがある

・変数を宣言する(つくる)には「型名 変数名」を書く必要がある

・変数に何かを入れたり、変数の中身を表示するには%d(int型の場合)を使う必要がある。

の三つ。

 

次回は何やろう。演算子やります。

お疲れ様でした。

 

Cの絵本 第2版 C言語が好きになる新しい9つの扉

Cの絵本 第2版 C言語が好きになる新しい9つの扉