関数の引数渡し

Cで関数の引数は値渡しであるとよく書いてあるが、Cではそれで十分であるが、C#などの場合、それでは言葉足らずだと思った。変数には値型と参照型の2通りあり、渡し方も値渡しと参照渡しの2通りあるので2x2で4通りの渡し方(の可能性)がある。きちんと表現するには、何型変数を何渡しで渡すと表現してあげる必要がある。参照型変数を参照渡しする必要性は検討する必要がありそうだが…(可能なのかもまだ調べてない)。


例えば、C#では値型を参照渡しにするには、値型の変数名の前に、呼び出し側と定義側(呼び出される側)の両方でrefやoutを付ける必要がある。


また、C#を勉強していて、Cでは短絡評価(short-circuit evaluation)をしてくれないということに気づいた。新しい言語を勉強すると、私みたいな疎い人間でもそういうところを意識させてくれるのが良いと思った。