함수

함수명은 함수의 시작 주소 상수이다.

즉 배열명과 마찬가지로 함수명 자체로 주소를 가리킨다.

return & parameter

함수의 리턴값은 오직 단 1개 또는 0개이다.

여러 값을 리턴하고 싶다면 주소를 parameter로 받아 함수를 수행한다.

파라미터를 안받고 싶다면 void 나 공란으로 비워준다.

ex)
int function()
or
int function(void)

tip : 전달인자와 매개변수의 명을 동일하게 하자

매개변수로 받을 값과 전달인자로 넣어줄 파라미터명을 동일하게 해주는것이 헷갈리지 않고 좋다.

ex)
int function(int number1,int kkk);

int main(){

    int number1=3;
    int kkk=10;
    function(number1,kkk);

}

헷갈리는 swap 함수

코드

결과

static 변수

static 변수는 지역변수(해당 함수 내에서만 접근이 가능하다)와 전역변수(한번만 초기화 된다. 함수가 끝나도 소멸되지 않는다.)의 성질을 둘다 갖고있다. 또한 함수의 내부 외부에서 모두 선언이 가능하다.

위와 같은 결과가 나오는 이유를 순차적으로 살펴보자.

일단 main에서 ii=30을 선언한다.

그리고 staticexam을 처음 소환하면

메모리에 ii=10이라는 공간이 초기화된다. 그리고 static int ii = 10;이라는

문장은 blind 처리가 된다.

그리고 이 함수가 실행될때마다 메모리영역에서 사용된다.

+ Recent posts