C言語を学ぼう②
まさか、最初のコードで2回分になると思っていなかった。
さっそくやっていこう。
int main(void)とはなにか。
基本的に長くなってしまうので、見出しをつけてみることにした。いかがだろうか。
さてint main(void)とはなにか。
まず、intとはインテグラル、積分という意味もあるが、ここでは整数という意味だ。
C言語では基本的にこのmainというところに命令を書いていくことになる。コンピュータは主にmainを読みに来る。メインだからだ。
伝えたいことはmainの{}の中に書いてほしい。これは基本的なルールとして覚えてくだちい。
さて、ではなぜ、intというものがmainの前についているのか。
C言語の非常にややこしい?(重要な)概念に「型」というものがある。このあといろいろ扱っていくが、この命令はどういう型なの?これはなんなの?バカなの?死ぬの?みたいなエラーがたくさん出てくる。
コンピュータは英語が読めない。0か1しか読めないのだ。英語で書いたプログラミングはすべて0と1に置き換えられてコンピュータが理解できるように翻訳される(これをコンパイルと呼ぶ)。
したがって、コンピュータが理解できるように事細かに説明してあげなければならない。mainってどういう人なの?とコンピュータに聞かれたので、「int型だよ」と教えているのだ。
女「mainさんってどんな人なの?」
男「int型っぽいよ、あいつは」
女「へぇ~そうなんだぁ、意外~、double型かと思ってた~」
↑今ここクマ!
なにもわからねぇ。
このあといろいろ扱っていくが、このmain{}の塊は「関数」と呼ばれる。たとえば、main以外にも別の関数をオリジナルでつくってその関数になにか計算だったりなんだりをさせて答えだけmainに持ってきてあげる。なんていうこともできる。というかそんなことばっかりすることになる。
この関数というのは、何かしら値を返さなくてはならない。最後にreturn 0とあるが、0という値を返しているのだ(どこに返しているのかはよくわからないが、0が返るとプログラムは終了する)。
0、これは整数である。つまり、int mainは「mainという関数が0というint型(整数)の数字を返すよ~」と言っているのである。ここは後から腐るほどやらされるので今はこの程度の認識でよい。
さらに(void)というものがある。voidとは空虚、無効などの意味がある。関数は値を返すことができるが、値をもらうこともできる。この()の中に受け取る値がどんなものかを指定することができる。
でも、今回はこんにちはを表示させるだけなので、値をもらう必要はない。なので()の中にvoidと入れるのだ。ちなみに値を返さない関数もあるので、void main(void)とすることもある。
まとめると、
・main関数に命令を書く
・intとかなんとか、型っていうのが大事らしい
・int mainは最後に0をリターンするのでintをつけるらしい
・こんにちはを表示させるだけなら値をもらう必要はないので、()の中はvoidでよい
こんな感覚で覚えていてもらえればOK。むしろおまじない、と言われているように後でいくらでも出てくるのでここは忘れてしまってもOK。関数は次の次ぐらいでやりたいと思う。
printfとreturnについて
さぁ、最後にprintfとreturnについて。
先にreturnを説明する。
値を返す。
以上だ。returnは値を返す単語。それだけ覚えてくれ。
次にprintf。頻出ナンバー1単語。でも後々使わなくなってくる単語。
printfは()内の文字を出力する命令だ。
ルールとして、printfの後に()を書いて、その中に""(ダブルクオーテーション)を書いて、その中に表示させたい文字を書く。これがルールだ。
これは英語を覚えたときのように英単語を覚える感覚で覚えてくれ。
つまり言語を学習するときは文法と単語の2種類を学ばなくてはならない。これは何度も出てくる単語なのでぜひ暗記してほしい。
文法といえば文の終わり(正確には命令の終わり)に「;」を置いた。これは日本語の句点「。」と同じだ。文の終わりには必ずつけること(エラーで一番多いのはこれの付け忘れだと思う)。
まとめ
いきなり詰め込みすぎて申し訳ないが、なるべくおまじないというものを使わないようにした。わからないなりにわからない部分を減らすために書いたので、わかりにくい部分は指摘していただけると助かります。
今回覚えてほしいこと
・命令はmainの{}の中に書く
・大文字小文字は区別されるので注意
・printfで文字を表示
・””や;の付け忘れには注意
・エラーが起きたら自分の記述を疑う
以上。次回はscanfと変数について。
お疲れ様でした。