• 함수

함수가 return을 넘기는 과정

리턴 값을 CPU의 메모리or레지스터에 값을 복사해 저장한다

그 함수를 호출한 프로그램에서 리턴값이 들어있는 주소를 조사한다

※ 배열은 return이 안된다

 

함수의 원형

- 컴파일러에게 내가 저장한 return의 자료형이 이거야 라고 알려줌

- 매개변수의 타입과 개수를 컴파일러에게 알려줌

- 식별자 생략 가능(하지만 쓰자)

 

함수의 호출시 return처리

- 리턴값을 계산하여 리턴값을 CPU에 넣는다

- 넣을 때 함수머리부분의 정의된 자료형으로 넣는다

 


  • 매개변수

함수에 전달되는 값을 실제 매개변수(argument) 라한다

함수에 전달되어 복사받은 값을 저장한 변수를 형식 매개변수(parameter) 라한다

형식 매개변수는 지역변수로 생성된다

argument의 값을 복사해 parameter로 넣는다

 

그렇기에 둘다 값만 같고 다른 변수다

그 이유로 넣은 a와 b의 주소가 다르고 a의 값이 그대로이다

 

그래서 주소를 사용한다

함수의 정의에 있는 int b [ ]는 호출 될 때 새로 생성되었으며 a와 가르키는 배열의 데이터는 같다

 

근데 Test함수의 정의에 매개변수를 int b[ ]로 배열을 받게끔 사용했다

생성되는것도 배열이 생성될까 궁금했다

 

그래서 사이즈를 받아봤다

 생성되는 타입은 포인터인듯하다

 

이렇게 포인터로 넘어온다.

포인터는 크기에 제한이 없기에 조심하자

 

+ Recent posts