반응형
함수의 이름은 곧 기능이다.
call by value:
-->인자로 넘기는 값을 복사해서 새로운 함수에 넘겨주는 방식으로 값의 복사에 의한 함수호출을 의미한다.
특징:값을 복사해서 전다하기 때문에 원본의 값이 변경될 가능성이 없다
문제: 값을 넘겨줄때마다 고비용,복사손실 문제가 발생한다.
Call by reference :
--> 주소값을 인자로 전달하는 함수 호출이다.
특징: 복사손실과 고비용 문제를 해결할수있다.
문제: 원본의 값의 변경이 일어날수있는 문제점이 있다.
--> 원래변수에 있는 데이터는 변경되지않는다.
함수외부에 선언된 변수의 값에 대한 접근이 가능하며,포인터연산에 의해서
값을 변경할수있다.포인터연산의 위험성이 존재함
함수에 const 를 활용하는 방법:
주소 혹은 값을 바꾸지 않기 위하여 const 를 사용한다.
const int *a; --> 값을 바꾸지않는다.
int const *a; --> 주소를 바구지않는다.
********************************************************************
1. 함수 포인터를 사용하면 함수를 데이터처럼 전달할수있다.
2. 함수 포인터는 * 와 & 연산자가 필요없는 유일한 포인터지만 ,원하면 사용가능하다.
3. 모든함수의 이름은 함수에 대한 포인터이다.
4. 함수 포인터의 배열을 사용하면 데이터형에따라 다른 함수를 실행한다.
5. 인자의 개수가 바뀔수 있는 함수를 "가변 인자함수" 라고한다.
반응형