入出力の機能を使うための準備
#include <stdio.h>
・#include
→必要な機能を読み込む
・stdio.h
→printfやscanfなどが入っている標準のヘッダファイル
整数を扱う型
int age = 20;
・intはintegerの略
・少数なしの数字を入れる時に使う
例
int a = 5;
int b = 10;
int sum = a + b;
少数を扱う型
float height = 160.5;
・floatは少数を入れるための型
・intだと少数は入れられないから、そういう時に使う
例
float a = 1.5;
float b = 2.3;
float sum = a + b;
プログラムが始まる場所
int main(void)
・mainは「メインの処理」
・C言語では、ここからプログラムが始まる
・voidはここでは「引数はありません」って意味
画面に文字や数字を表示する関数
printf("Hello\n");
できること
・文字を表示
・数字を表示
・計算結果を表示
例1:文字を表示
printf("こんにちは\n");
例2:数字を表示
printf("%d\n", 10);
例3:変数を表示
int age = 20;
printf("%d\n", age);
・"の中に表示したい内容を書く
・%dみたいな記号を使うことがある
・\nは改行
キーボードから入力された値を受け取る関数
scanf("%d", &age);
例)ユーザーに数字を入力してもらいたい時に使う
#include <stdio.h>
int main(void) {
int age;
scanf("%d", &age);
printf("%d\n", age);
return 0;
}
これで
1.数字を入力する
2.Enterを押す
3.入力した数字が表示される
scanfの中の%dは整数を入力してくださいって意味
scanfで変数に入力するときは、変数名の前に&をつけることが多い
printfとscanfを使うときのポイント
%d
整数を表す記号
主に使う場面
printfで整数を表示するとき
int age = 20;
printf("%d\n", age);
意味
・%d
→「ここに整数を入れて表示してね」
だからこのコードは、ageに入ってる20を表示する
%f
少数を表す記号
主に使う場面
printfで少数を表示するとき
float height = 160.5;
printf("%f\n", height);
意味
・%f
→「ここに少数を入れて表示してね」
イメージ
float a = 1.5;
printf("%f\n", a);
これの表示は
1.500000
みたいになる
0がいっぱい表示されるのは
%fは標準だと小数点以下もまとめて表示するから1.500000って感じで表示される。
%fを%.2fって書いたら小数点以下2桁までの表示にとどまる。
・%.2fで少数を表示すると
3 → 3.00
3.5 → 3.50
2.6666 → 2.67
みたいになる
&age
scanfでよく出てくるやつでageという変数の場所を表している
int age;
scanf("%d", &age);
scanfは、入力した値をどこに入れるかを知らないといけない。そのために&ageを書いて、「ageの場所はここだよ」って教えてる。
イメージ
ageが箱だとすると、
・age→箱の中身
・&age→箱のある場所
って感じ。
printf("%d\n", age);
→ageの中身を表示
scanf("%d", &age);
→入力した整数をageに入れる
コンパイル
C言語は
1.任意のファイル(main.c)にコードを書く
2.clang main.c -o mainでコンパイルする
3../mainで実行する
この順番で動く
clang main.c -o mainの意味
clang
・C言語のコンパイラ
コンパイラとは、人が書いたC言語のコードを、パソコンが実行できる形に変えるもの。
つまり、
コードを書いたmain.c
↓
clangが変換
↓
実行できるファイルができる
という流れになる。
main.c
・元のC言語のファイル名
例えばこのファイル(main.c)の中に
#include <stdio.h>
int main(void) {
printf("Hello, C!\n");
return 0;
}
って書いてある。
つまり
clang main.c -o main
は「main.cをコンパイルしてね」って意味の最初の部分。
-o
・これはオプションで、出来上がるファイル名を指定するときに使う。
-oはoutputのイメージ。
main
・コンパイル後にできる実行ファイルの名前
clang main.c -o main
これ全体では、「main.cをコンパイルして、できた実行ファイルの名前をmainにしてね」って意味になる。
-o mainをつけなかったら。。。
・つけなくてもコンパイルはできることがあるけど、出来上がったときの実行ファイル名が自動でa.outになりやすいので、自分でなんのファイルかわかりやすくするために-o ファイル名はつけたほうがいい。
./mainの意味
・mainは-o mainで作った実行ファイル名
・./は「今いるフォルダの中にある」って意味
つまり
./main
は「今いるフォルダの中にあるmainを実行して」ってことになる。
コードを書き換えたら
毎回
clang main.c -o main
をやって実行ファイルを作り直して、
./main
で、最新の内容が実行できるようになる。