값
변가 매개변로 달될 때 변 값만 복
래 값 바뀌
변가 매개변로 달될 때 변 값만 복
래 값 바뀌
매개변로 되는 변 대를 달
내 매개변로 되는 변 값 변경
란 무가?
▶ 값 (Call by Value)
C 가 기본 달 방법.
된 는 매개 변 기 를 로 .
를 는 로그램 값 된 복 다른 변들과 동게 급.
값 기법는 값 대로 변 .
된 는 매개 변 기 를 로 .
를 는 로그램 값 된 복 다른 변들과 동게 급.
값 기법는 값 대로 변 .
▶ ( Call by Reference )
달 기법 매개 변 를 된 대는 매개 변 보내는 방법.
값 라 를 달 ( 는 를 )
(call by reference, call by address, call by location) 방법 가 값 변경면 값 변경
반되는 값 러 개나 배 를 달는 경 로 .
값 라 를 달 ( 는 를 )
(call by reference, call by address, call by location) 방법 가 값 변경면 값 변경
반되는 값 러 개나 배 를 달는 경 로 .
란 료 동 가고 값 반는 부 로그램로 C++로그램 빠 는 가
바로 main()로 때 main() 동로 려고 또 main() 다른 를 부를 가
다.
먼 대 반 개를 면..
바로 main()로 때 main() 동로 려고 또 main() 다른 를 부를 가
다.
먼 대 반 개를 면..
류
1) 반
,, 격 구되며 Compiler 리되 object file 만들며 Pro
gramming 기가 됩다.
2) 매로
리 #define 되는 .
3) inline
매로 갖만 compiler 리되며 반 동 매개변 달 방
법 다.
1) 반
,, 격 구되며 Compiler 리되 object file 만들며 Pro
gramming 기가 됩다.
2) 매로
리 #define 되는 .
3) inline
매로 갖만 compiler 리되며 반 동 매개변 달 방
법 다.
보 달 방법
1) 매개변 방법
로 보 달 방법로 다.
2) 부변 방법
로 광로 보를 달나 고 때 .
1) 매개변 방법
로 보 달 방법로 다.
- 값 (Call by value)
매개변 값 를 달 - (Call by pointer reference)
매개변 를 달- (Call by reference)
매개변를 공 2) 부변 방법
로 광로 보를 달나 고 때 .
반 , , 대 를 들면,
#include
#include
void main()
{
{
double power(double base, int exponent); // ()
double base,result;
int exponent;
cout << "밑수 및 지수를 입력하시오\n";
while (cin >> base >> exponent)
{
} double base,result;
int exponent;
cout << "밑수 및 지수를 입력하시오\n";
while (cin >> base >> exponent)
{
result = power(base, exponent); //
cout << "밑수("<< base <<")" << "지수("<< exponent <<")" << "결과 :"<< result << endl;
} cout << "밑수("<< base <<")" << "지수("<< exponent <<")" << "결과 :"<< result << endl;
double power (double x, int y) //
{
미고 power 명 미며 double base, int exponent 매개변를 미다. power()라는
고 교보면 명,반, 매개변 똑같다. 만
다르다면 러 가 발 것다. 다른 다면 막 미론로 끝난다
는 것다.
{
double ans="x";
for (int i=1;i < y;i++)
}for (int i=1;i < y;i++)
ans*="x";
return ans; - 기 power(double x, int y) 따가 같데...? -동
- 그리고 과 같게 는것 가급 것 같다. -동
미고 power 명 미며 double base, int exponent 매개변를 미다. power()라는
고 교보면 명,반, 매개변 똑같다. 만
다르다면 러 가 발 것다. 다른 다면 막 미론로 끝난다
는 것다.
변 변 대 봅다.
먼 변란 것 떤 바깥 된 변는 범 규 가고 main()를
로그램내 디나 가능다. 반 변는 몸 는데
변란 그 만 다.
먼 변란 것 떤 바깥 된 변는 범 규 가고 main()를
로그램내 디나 가능다. 반 변는 몸 는데
변란 그 만 다.
다 를 봅다.
#include
#include
void mytest(); //
{
int x=1,y=2; // 변
void main(){
cout << "x="<< x <<" \n"; cout << "y="<< y <<" \n"; mytest(); // 함수선언
cout << "x="<< x <<" \n"; cout << "y="<< y <<" \n";
} cout << "x="<< x <<" \n"; cout << "y="<< y <<" \n";
void mytest() //
{
{
int x="3;" // 변
cout << "this x="<< x <<" \n"; cout << "this y="<< y <<" \n";
}cout << "this x="<< x <<" \n"; cout << "this y="<< y <<" \n";
력 다과 같다.
x=1
y=2
this x=3
this y=2
x=1
y=2
mytest 내 변로 x 값 3 되므로 this x=3 되고 그 값들 모두 변
로 되 기 때문 같게 나는데 기 것 C++는 변를 를 는
다는 것데 는 변는 공되 료기 때문 느 나가 다른 모르게 변를 바
꿀 기 때문다. 그래 나 그가 나면 기 들고 나 , 보 기가 가 기
때문다.
x=1
y=2
this x=3
this y=2
x=1
y=2
mytest 내 변로 x 값 3 되므로 this x=3 되고 그 값들 모두 변
로 되 기 때문 같게 나는데 기 것 C++는 변를 를 는
다는 것데 는 변는 공되 료기 때문 느 나가 다른 모르게 변를 바
꿀 기 때문다. 그래 나 그가 나면 기 들고 나 , 보 기가 가 기
때문다.
매개변 달방법 봅다.
값 방법(Call by value )
: 매개 변 달 매개변 값 달는 것로 매개변가 된
void main()
{
값 방법(Call by value )
: 매개 변 달 매개변 값 달는 것로 매개변가 된
다.
#include <iostream.h>void main()
{
void test(int, int); //
int a = 10, b = 20;
test(a,b); //
cout << "a=" << a <<" " << "b=" << b << endl;
}int a = 10, b = 20;
test(a,b); //
cout << "a=" << a <<" " << "b=" << b << endl;
void test(int x, int y) //
{
{
int temp;
temp = x;
x = y;
y = temp;
}temp = x;
x = y;
y = temp;
결과는 a=10 b=20만 내부로 x y 값 20, 10다.
결국 매개변가 값 변 는다는 것 다.
결국 매개변가 값 변 는다는 것 다.
(Call by point reference)
: 대 객 값 달는 방로 매개변 변가 된다.
: 대 객 값 달는 방로 매개변 변가 된다.
#include <iostream.h>
void main()
{
void main()
{
void test(int*, int*); //
int a = 10, b = 20;
test(&a,&b); // , ab 값 달
cout << "a=" << a <<" " << "b=" << b << endl;
}int a = 10, b = 20;
test(&a,&b); // , ab 값 달
cout << "a=" << a <<" " << "b=" << b << endl;
void test(int *x, int *y) //
{
{
int temp;
temp = *x;
temp = *x;
- x = *y;
- y = temp;
결과는 a=20 b=10 되고 x는 a 값 가고 y는 b 값 가게 된다.
(Call by reference)
: 매개변를 달는 것로 매개변 매개 변
void main()
{
: 매개변를 달는 것로 매개변 매개 변
로 기되 내부 매개변를 다.
#include <iostream.h>void main()
{
void test(int&, int&); //
int a = 10, b = 20;
test(a,b); // , 매개 변
cout << "a=" << a <<" " // 참조형이 실매개 변수로 초기화 << "b=" << b << endl;
}int a = 10, b = 20;
test(a,b); // , 매개 변
cout << "a=" << a <<" " // 참조형이 실매개 변수로 초기화 << "b=" << b << endl;
void test(int &x, int &y) //
{
{
int temp;
temp = x;
x = y;
y = temp;
}temp = x;
x = y;
y = temp;
결과로 a=20 b=20 되는데 결국 내부 매개변를 는 것다.