C에서 참조 전달과 포인터 비교
C에서 참조와 포인터를 언제 사용해야 하는지 이해하는 것은 혼란스러운 주제일 수 있습니다. 이 문서에서는 참조에 의한 전달과 포인터에 의한 전달의 미묘한 차이를 살펴보고 실용적인 지침을 제공합니다.
참조에 의한 전달:
다음과 같은 경우에 참조에 의한 전달을 권장합니다.
포인터로 전달:
다음과 같은 경우 포인터로 전달이 필요합니다.
모범 사례:
일반적으로 가능하면 참조로 전달하는 것을 선호합니다. 그러나 리터럴, 널 포인터 또는 포인터 자체를 수정해야 하는 상황을 처리할 때는 포인터로 전달합니다.
예:
제공된 코드 조각은 전달합니다. 지도에 동적으로 할당된 벡터에 대한 포인터입니다. 새 벡터를 생성하고 지도를 참조하여 전달해야 하기 때문에 이는 유효한 접근 방식입니다. 포인터를 사용하면 전체 벡터를 복사할 필요가 없습니다.
#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 중국어 웹사이트의 기타 관련 기사를 참조하세요!