반응형
chapter. 함수
-----------------------------------------------------------------------------------------------------
<이론 : 큼직큼직 중요포인트!!>
함수란 "명령어들을 묶어 이름을 붙인 것"
- 이미 정의된 함수를 실행하는 것을 호출이라고 한다
- 어떤 함수에서나 접근 가능한 변수를 '전역변수'라고 한다
- 정보를 전달해주는 소괄호안의 내용을 '매개변수'라고 한다 ※매개변수는 다음과 같이 그 자료형과 함께 소괄호 안에 쓴다
- 함수를 호출할 때 넘겨주는 수를 '인수'라고 한다
- 매개변수가 여러 개 일때는 다음과 같이 쉼표로 구분한다(대신 모든 매개변수 앞에 자료형을 붙여야한다_)
함수의 반환
- 함수는 코드를 묶는 기능 외에 어떤 값을 돌려주는 기능도 할 수 있다.
- retrun문을 사용하는 이런 작업을 할 수 있다.
- 반환한다 또는 리턴한다
- void는 리턴 값이 없다는 뜻 ( void가 들어갈 자리에 다른 자료형을 넣으면 그 자료형의 값을 리턴할 수 있다)
- return함수가 여러개 있다면 하나라도 만나는 즉시 함수는 종료되고 그 아래 명령들은 실행되지 않는다
- void 함수에서도 마찬가지로 return문을 쓸 수 있다 대신 어떤 값을 리턴하지 않고 함수를 종료하는 역할만한다.
call-by-value,call-by-address, call-by-reference
-변수를 넘겨주는 것과 변수의 주좃값을 넘겨주는 것
call-by-value

-> call by value(값에 의한 호출) -> 호출할 때 값만 복사해서 넘겨준다
-> a,b의 값이 새로운 변수인 x,y에 복사되었고 x,y의 값을 바꿔봤자 이들은 그냥 다른 변수일 뿐기에 a,b의 값은 바뀌지 않는다
call-by-address

-> 주소에 의한 호출 포인터의 등장으로 사용
-> px가 가리키는 변수와 py가 가르키는 변수를 서로 스왑하면 된다
프로토 타입
- 프로토타입은 " 함수의 모양이 이런 것이다"라는 것을 미리 알려주는 것을 말한다
- 프로토타입을 만들어 놓으면 함수를 나중에 가서 정의할 수 있다
- 컴파일러에게 "이런이름의 함수가 있고 이렇게 생겼다"라는 정보만 알려주고 함수의 내용물은 나중으로 빼는 것\
- 이렇게 함수의 리턴타입 이름 매개변수까지만 적은 후 중괄호 없이 세미콜론으로 그냥 끝마치면 된다
- 프로토타입은 매개변수의 자료형만 적고 이름은 적지 않아도 된다 (ex void walk(int))
재귀함수


-> 자기 자신이 포함되어 있는 것을 재귀 라고 한다
-> 미처 종료되기도 전에 다시 자기 자신을 호출하는 과정 반복

-> 이렇게 끝을 정해주어 한계 값을 만들 수 있다
팩토리얼 !
n! = 1 x 2 x 3 x … x (n-1) x n
n! = (n-1)! x n



-> 팩토리얼을 중요하니 잘 알아두고
-> 첫번째에서 3번째 줄까지 암기하자!!!!
반응형