少しでも参考になれば嬉しいです。
はじめに
プログラム中で関数を使用する際、関数に値を渡す必要があります。渡す方法には主に3種類あり、それぞれ特徴が異なります。
混同しないようイメージと結び付けて覚えやすくしているので、ぜひ読んでもらえると嬉しいです。
リンク
ちなみに私はこの参考書を使って勉強してました。
漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。
過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!
参照呼出し・値呼出し・名前呼出し
関数に値を渡す方法は3種類あり、「参照呼出し」、「値呼出し」、「名前呼出し」と呼ばれます。それぞれの特徴に触れる前に、以下の点は覚えておいてください。
プログラム上では、「変数」、「値」、「アドレス」というのが重要になります。
「変数」の中に「値」が格納されており、その「変数」が保存されているメモリの場所を「アドレス」で指定します。
これらを頭に入れた上で、それぞれの特徴を見ていきましょう。
※ おまけ
関数とサブルーチンには注意して下さい。
プログラム中で呼び出される処理はサブルーチンと呼ばれます。厳密には違う意味合いを持っているみたいなのですが、ほとんど同じ意味なので今回は区別しません。
関数とサブルーチンには注意して下さい。
プログラム中で呼び出される処理はサブルーチンと呼ばれます。厳密には違う意味合いを持っているみたいなのですが、ほとんど同じ意味なので今回は区別しません。
参照呼出し(call by reference)
メモリのアドレスとはメモリ上の住所みたいなものです。
要するに、変数がどこにいるかを関数に教えてあげる渡し方になります。
関数はそのアドレスをたどって変数に直接アクセスし、値を上書きするため、メモリ上に格納されている変数の値も変わってしまいます。
値呼出し(call by value)
渡された値は関数の中でのみ使うことができ、関数内で呼び出されてきた(コピーされた)値は、関数内部の別の変数に格納され、メモリ上の新しい領域に保存されるため、コピー元の変数に影響は与えません。
名前呼出し(call by name)
「評価」とは、式の保持している内容が「確定」することです。すなわち未評価の式とは、まだ中身の内容が確定していないことを意味します。
変数とはあくまでも「入れ物」にすぎませんからね。中身が確定するかどうか、どう変わるかが重要なわけです。
未評価の式の名称(名前)を渡し、関数内部で必要になった場合、評価されて値が確定します。
この呼出し方法も変数の中身が変わってしまいます。
最後に・・・これだけは覚えよう!
今回は関数に値を渡す方法についてまとめました。
Point
- 参照呼出し:変数が保存されている「アドレス」を渡す方法
- 値呼出し:変数に格納されている「値」をコピーして渡す方法
- 名前呼出し:変数を「名前」で指定して渡す方法
重要なのは、「値呼出し」の場合、元の変数に影響を与えないということです。
それぞれの特徴と、「値呼出し」の場合は元の変数の内容は変わらない、これらを必ず覚えておきましょう。
目指せ試験合格!
前回まとめた記事も読んでもらえると嬉しいです!
Point
- 参照呼出し:変数が保存されている「アドレス」を渡す方法
- 値呼出し:変数に格納されている「値」をコピーして渡す方法
- 名前呼出し:変数を「名前」で指定して渡す方法
Follow @nlab_notebook