C での参照による受け渡しとポインターによる受け渡し
C では、参照とポインターをいつ使用するかを理解することが混乱を招く可能性があります。この記事では、参照による受け渡しとポインターによる受け渡しの微妙な違いについて説明し、実用的なガイドラインを提供します。
参照による受け渡し:
次のような場合には参照による受け渡しが推奨されます。
ポインターによる受け渡し:
ポインターによる受け渡しは、次の場合に必要です。
ベスト プラクティス:
原則として、パスすることを優先します。可能な限り参照してください。ただし、リテラル、null ポインター、またはポインター自体を変更する必要がある状況を扱う場合は、ポインターで渡します。
例:
提供されるコード スニペットはパスを渡します。マップに動的に割り当てられたベクトルへのポインタ。新しいベクトルを作成し、それをマップへの参照によって渡す必要があるため、これは有効なアプローチです。ポインタを使用することで、ベクトル全体をコピーする必要がなくなります。
#include <iostream> #include <vector> #include <map> #include <string> #include <tr1/memory> #include <algorithm> using namespace std; using namespace std::tr1; int main(){ map<string, shared_ptr<vector<string>>> adjacencyMap; vector<string>* myFriends = new vector<string>(); myFriends->push_back(string("a")); myFriends->push_back(string("v")); myFriends->push_back(string("g")); adjacencyMap["s"] = shared_ptr<vector<string>>(myFriends); return 0; }
以上がC で参照とポインタを使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。