ë¨¼ì € ê°’ì—� ì�˜í•œ ì „ë‹¬, 참조ì—� ì�˜í•œ ì „ë‹¬ì�˜ ì°¨ì�´ì �ì�´ ìƒ�긴 ì�´ìœ 를 알아야 ë� 듯싶습니다.
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� 쓰면 안 �니다. -��










