p61〜p72まで

久々に再開。別にさぼってたわけじゃないですよ、ええ。しかし、今日もあんまり時間がないなぁ。

関数

p63:
関数の名前も使える文字は変数と一緒。
あと、他の人のブログでもよく書かれているけど、仮引数がparameterで実引数がargument。ほんとこれどこから仮引数と実引数って日本語がでてきたんだろうね。

void型

p67:
よくある関数の引数へのvoid指定。void Hello(void)みたいなやつね。あれはCの場合、引数なしの関数とする場合は必ず必要らしい。一応詳細がp917中段に書いてあった。
まとめてみると、CはK&Rとの互換性のため、以下のような関数宣言を許しているらしい。

void Hoge(a, b)
 int a;
 float b;
{
  // do something...
}

ここで、仮引数リストに引数を書かなかった場合、引数が可変個引数の関数であると仮定して呼び出されてしまうらしい。なので、Cで引数なしの関数を定義する場合は必ずvoidと明示的に書く必要があるみたい。ちなみにC++では仮引数リストがない場合は常に厳密に引数なしとみなされるので明示的なvoidは必要ないようだ。
と、いうことで、Cでは常にvoidを明示的に示し、C++はどっちでもOKということらしい。

入力

cinとflushを使った。それぞれ1.2節で出てきてたんだけど、使ったのははじめてなので、何打コリャと思ったのでメモ。
cin:>>と組み合わせることで>>の右オペランドに入力を格納する。
flush:endlの改行しないバージョン。現在のストリームの内容を表示する?
中途半端にストリームとか知ってるんで、もうちっと定義をはっきりしたいところですね。これは後々かな。今はとりあえず簡単な感じで覚えておけばいいか。

追記(4/17)

仮引数と実引数は英語の別の呼び方でformal parameter / actual parameterっていうところからきたんじゃないかということ。
id:uskzさん感謝です!