먼저 값에 의한 전달, 참조에 의한 전달의 차이점이 생긴 이유를 알아야 될듯싶습니다.
c++ 프로그래밍에선 사용자 함수를 많이 쓰게 되는데,
변수 선언시에 전체 선언이 아니라 함수안에서 지역선언으로 하게되면
다른 함수에서는 그 변수를 사용할 수가 없게됩니다.
대신 그 변수들의 값은 전달인자로 사용할수 있습니다만, 그것들을 사용하여 계산 결과를 리턴하는데
사용될뿐 실제 그 변수 주소의 값은 변경할 수 가 없습니다.
그러나 참조에 의한 전달은 그 변수의 주소자체를 전달 하기 때문에
마치 변수 하나에 이름이 두개인것 처럼 사용할 수가 있습니다.
- 일반 전달인자와 참조 전달인자의 차이 예시
~cpp #include <iostream> using namespace std; double cube(double a); double refcube(double & ra); void main() { double x = 3.0; cout << cube(x); cout << " = " << x << "의 세제곱 \n"; cout << refcube(x); cout << " = " << x << "의 세제곱 \n"; return 0; } double cube(double a) { a *= a * a; return a; } double refcube(double & ra) { ra *= ra * ra; return ra; }
이 소스의 결과는
27 = 3의 세제곱
27 = 27의 세제곱
참조전달에 의한 함수를 사용하였을경우 변수 자체의 값이 바뀌기 때문에 위와 같은 결과가 나옵니다.
27 = 27의 세제곱
참조전달에 의한 함수를 사용하였을경우 변수 자체의 값이 바뀌기 때문에 위와 같은 결과가 나옵니다.
- main() 함수의 리턴형이 void 이기 때문에 return 0은 쓰면 안 됩니다. -영동