C++ 関数と関数ポインタの違い

関数と関数ポインタは配列とポインタの関連に似ている。

配列とポインタ

配列は関数の引数になるとポインタに変わる。下の2つの関数abは同じ。

このように配列がポインタに変わる動作をdecayと呼ぶ。

関数と関数ポインタ

下の2つの関数abも同くdecayする。

参照はdecayしない

関数bは配列のサイズも合ってないとエラーになる。

結論

値渡しはdecayするが参照渡しはdecayしない。これにtemplateが絡むとすごく複雑になる。

ソース

https://github.com/ambiesoft/blogprogs/tree/master/5216

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)