[C++] 포인터와 레퍼런스 인자(Parameter)의 비교[C++] 포인터와 레퍼런스 인자(Parameter)의 비교

Posted at 2014.09.23 23:15 | Posted in C++



facebook에 글올리기



[C++] 포인터와 레퍼런스 인자(Parameter)의 비교


함수의 결과를 얻어오기 위한 방법으로 포인터 타입과 레퍼런스 타입의 파라미터를 사용한다.


두 가지를 상황에 맞게 사용하면 되지만, 레퍼런스가 사용하기 쉽고 안전하다.


포인터 타입의 파라미터(int* a)를 사용할 때, 가장 큰 위험은 NULL 값이 넘겨져 오는 경우이다.


반드시 NULL 값은 아니더라도 올바르지 않은 주소 값이 넘어왔을 때는 심각한 문제가 발생할 수 있다.


그래서 포인터 파라미터의 경우에는 올바른 주소가 넘어왔는지 반드시 확인해야 한다.



bool checkParam(int a, int b, int* pa, int* pb){

    if (NULL == pa || NULL == pb)
        return false;


    return true;
}



포인터와 달리 레퍼런스 타입의 파라미터(int& a)의 경우에는 올바르지 않은 인자가 입력될 가능성이 없다.


만약에 올바르지 않은 파라미터를 사용할 경우에는 프로그램이 시작되기 전에 오류가 발생하기 때문에, 아예 프로그램이 실행될 수가 없다.

이웃추가
facebook에 글올리기

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기