Parameter 매개변수와 Argument 인자
매개변수와 인자의 용어차이
매개변수는 함수의 기능을 바꾸어주는 기능을 한다.
매개변수는 함수가 끝나는 동시에 메모리에 반납이 된다.
즉, 새로운 변수가 생성되어 데이터가 복사되는 것이다.
인자는 함수를 사용할때 들어가는 변수,리터럴을 말한다.
#include <iostream>
using namespace std;
int foo(int a, int b);
//함수에서 사용되는 변수가 매개변수 parameter이다.
int foo(int a, int b) {
cout << "a : " << a << " b : " << b << endl;
return a + b;
}
int main()
{
int a = 3, b = 4;
//함수를 불러올때 사용되는 변수가 인자 argument이다.
foo(6, 7);
foo(a, b);
return 0;
}
값에 의한 인수 전달
Call by value
함수는 파라미터가 어떤게 들어오는지에따라 결과가 달라진다.
함수를 사용할때 선언된 변수를 인수에 넣게되면 변수를 함수로 보내는게
아닌 변수주소안의 데이터를 복사해서 보낸다.
그러므로 인자안에서 사칙연산이 가능한 것이다.
Call by value는 함수안에서 생긴결과가 밖으로 영향주지 못한다.
#include <iostream>
using namespace std;
void doSomething(int y) {
cout << "In fuc " << y << " " << &y << endl;
}
int main()
{
//리터럴 7이 함수에 복사한다.
doSomething(7);
int y = 6;
//doSomething(y);안의 변수 주소와 다른걸 볼 수 있다.
cout << "In main " << y << " " << &y << endl;
doSomething(y);
doSomething(y+1);
return 0;
}
'개발 소발 > 개발 C++(기초)' 카테고리의 다른 글
c++ 주소에 의한 전달 Call By Address (0) | 2019.07.30 |
---|---|
c++ 참조에 의한 인수전달 Call By Reference (0) | 2019.07.30 |
c++ std::array,std::vector (0) | 2019.07.30 |
c++ 2중포인터,동적 2차원배열 (0) | 2019.07.29 |
c++ void pointer,generic pointer (0) | 2019.07.29 |