- 함수
함수가 return을 넘기는 과정
리턴 값을 CPU의 메모리or레지스터에 값을 복사해 저장한다
그 함수를 호출한 프로그램에서 리턴값이 들어있는 주소를 조사한다
※ 배열은 return이 안된다
함수의 원형
- 컴파일러에게 내가 저장한 return의 자료형이 이거야 라고 알려줌
- 매개변수의 타입과 개수를 컴파일러에게 알려줌
- 식별자 생략 가능(하지만 쓰자)
함수의 호출시 return처리
- 리턴값을 계산하여 리턴값을 CPU에 넣는다
- 넣을 때 함수머리부분의 정의된 자료형으로 넣는다
- 매개변수
함수에 전달되는 값을 실제 매개변수(argument) 라한다
함수에 전달되어 복사받은 값을 저장한 변수를 형식 매개변수(parameter) 라한다
형식 매개변수는 지역변수로 생성된다
argument의 값을 복사해 parameter로 넣는다
그렇기에 둘다 값만 같고 다른 변수다
그 이유로 넣은 a와 b의 주소가 다르고 a의 값이 그대로이다
그래서 주소를 사용한다
함수의 정의에 있는 int b [ ]는 호출 될 때 새로 생성되었으며 a와 가르키는 배열의 데이터는 같다
근데 Test함수의 정의에 매개변수를 int b[ ]로 배열을 받게끔 사용했다
생성되는것도 배열이 생성될까 궁금했다
그래서 사이즈를 받아봤다
이렇게 포인터로 넘어온다.
포인터는 크기에 제한이 없기에 조심하자
'C++ > [책] C++ 기초 플러스' 카테고리의 다른 글
[ 443p ~ 466p ] 함수포인터 (0) | 2021.07.16 |
---|---|
[ 413p ~ 442p ] 함수의 매개변수, 재귀호출 (0) | 2021.07.15 |
[ 328p ~ 372p ] cctype.h, 삼항연산자, switchcase, break&continue, 간단한 파일I/O ///스트림 (0) | 2021.07.08 |
[ 281p ~ 327p ] EOF, 2차원배열, If, 논리표현식 (0) | 2021.07.07 |
[ 254p ~ 280p ] 복합구문&콤마연산자, 관계표현식, tpyedef(define&using), 문자열 비교, while, do while, Range based for loop (0) | 2021.07.06 |