私の個人的な cpp の経験から、そのようなパラメーターが NULL になる可能性がある場合はポインターによってオブジェクトを関数に渡し、パラメーターが NULL であってはならない/渡される前にインスタンス化する必要がある場合は参照によって関数に渡すことを学びました。そのとき、なぜ次のような関数を書くときに疑問に思っていました
HANDLE WINAPI CreateFile(
_In_ LPCTSTR lpFileName,
...
);
また
explicit basic_iostream(basic_streambuf<Elem, Tr> *_Strbuf);
Microsoft は、このようなパラメーターを参照ではなくポインターとして使用することを選択しました。特に、NULL 値が渡されたときに関数がエラーになるためです...
では、文字列 (または他の型) がパラメータとして渡されるたびに、(参照ではなく) ポインタとして渡されるのはなぜですか?
ポインターではなく参照によって文字列を渡すインスタンスをまだ見ていないため、これを尋ねています。なぜこれが行われるのかについて、コードに反映できる検証可能な理由が欠けているように感じます。仕方。