今日やること
前回は環境構築をやりました。今回は入出力、変数などについて説明していきます。
変数の宣言方法
Pythonは変数宣言時に変数の型を決めなくても大丈夫でしたが、C言語は変数宣言時に変数の型を決める必要があります。このように変数の型を宣言時に決める必要がない言語を動的型付け言語、決める必要がある言語を静的型付け言語といいます。
さて、Cの変数の宣言の仕方ですが基本的には以下のように宣言します。
型名 変数名=初期値;
例えば、xという名前の整数型変数を初期値0で宣言する場合、
int x=0;
と書きます。また、初期値がどんな値をとっても大丈夫な場合は
型名 変数名;
int x;
と宣言することができます。さらに複数の変数を1行で宣言したい場合、
型名 変数名1,変数名2,変数名3、・・・・・;
int x,y,z;
のように書きます。 また、必要に応じて型名の前に記憶域クラス名や 型修飾子をつける場合もあります。
変数の型
変数の型の説明がまだでしたね。変数の型とはその変数が表す種類(整数、小数、文字など)のことで、種類によって二項演算の結果やメモリの取り方などが違います。
変数の型には色々あります。上の例で示した"int"も型の一つで、この型で宣言した変数は整数として扱われます。整数として扱われるので、int型の変数は整数型変数と言われたりもします。
基本的な変数の型のうちいくつかを下に乗せます。もっと詳しく見たい人はネットで調べて下さい。
型名 | 内容 | バイト長 | 取れる値の範囲 |
---|---|---|---|
char | 文字型 | 1 | 0~255 |
int | 整数型 | 4 | -2147483648~2147483647 |
float | 単精度浮動小数点型 | 4 | 精度の限界があるので調べて下さい。 |
double | 倍精度浮動小数点型 | 8 | 精度の限界があるので調べて下さい。 |
必要に応じて、適切な型の変数を宣言していきましょう。
出力
今度は出力についてです。出力とは文字や数字を出力する処理です。
前回の勉強家の最後に""Hello World""と出力したのは覚えているでしょうか?コードは以下のようなものでしたね。
#include <stdio.h>
int main(void)
{
printf("Hello World!\n");
return 0;
}
このコードの
printf("Hello World!\n");
部分で出力を行っていたのです。まとめると、一般的に出力をする場合は
printf("出力したいもの");
と書きます。ただし""で囲んだ文字列のうち、そのままの形で表示されないものもあります。
例えば、Hello Worldを出力する時の文字列の最後に"\n"があったのに"\n"という文字れつは表示されませんでした。これは"\n"という文字列が改行の意味を表していたからです。このように特定の文字列はそのままの文字列の意味としてではなく、他の意味を表すのです。
さて、変数を出力する場合フォーマット指定子という特定の文字列を使用します。コードは以下のように書きます。
printf("フォーマット指定子",変数);
例えば、初期値が10の変数xの値をそのまま出力するコードは下のようになります。
#include <stdio.h>
int main(void)
{
int x=10;
printf("x=%d\n",x);
return 0;
}
実行すると下のように出力されます。
x=10
上のコードの"%d"がフォーマット指定子です。フォーマット指定子は表示したい変数の型によってかえる必要があります。いくつかを下に載せておきます。
フォーマット指定子 | 出力する変数の型 |
---|---|
%c | char |
%s | char * (文字列) |
%d | int,short |
%f | float |
%lf | double |
以上のことが分かっていれば基本的な出力については大丈夫です。
入力
入力とは実行した後に変数などに外部から文字や数字を読み込ませる処理です。 コードは以下のように書きます。
scanf("フォーマット指定子",変数のアドレス);
変数のアドレスは大体の場合変数のまえに**&**をつければ大丈夫です。
例として2つの整数を読み込んでその和を出力するコードを下に載せておきます。
#include <stdio.h>
int main(void)
{
int x,y;
scanf("%d%d",&x,&y);
printf("x+y=%d\n",x+y);
return 0;
}
includeに関して軽く
別のファイルにある関数などを使用するためにはそのファイルの情報を読み込む
必要があります。それがincludeです。
例えば、sanf()やprintf()を使用するために"stdio.h"をincludeする必要があります。
includeは下のように書きます。2つ書きますが少し処理が変わります。上は元々用意されているファイルを、下は自分で作ったファイルを読み込むときに使うという認識でとりあえずいいと思います。
#include <ファイル名>
#include "ファイル名"
配列
同じ方の変数を10000個作りたい。でも10000個の変数名書くのはしんどい。
そのようなときに配列を使えば便利です。int型の変数を10000個宣言する場合は以下のように宣言します。
int x[10000];
配列は0から数え始めます。よって,上のコードではi[0]~i[9999]までの変数が作られたことになります。(0から数え初めて)10個目の変数を0にするには以下のように書きます。
x[9]=0;
また、文字の配列を文字列として扱うことが多く有ります。その場合、入力は&をつける必要が無く 下のようになります。細かい説明はまた今度します。
char s[100];
scanf ("%s",s);
最後に
お疲れ様でした。
次回は制御文に関してやっていこうと思います。
色々触って慣れておきましょう。