반응형
C
포인터와 함수
"함수호출 시 전달되는 인자의 값은 매개변수에 복사가 된다."
<배열을 함수의 인자로 전달하는 방식>
-함수를 호출하면서 매개변수에 배열을 통째로 넘겨주는 방법은 존재x
-함수 내에서 배열에 접근할 수 있도록 배열의 주소 값을 전달하는 것은 가능
7행: int형 포인터 변수의 이름을 대상으로 배열형태의 접근을 진행
int * param => int param[] (매개 변수의 선언으로 제한됨)
<값의 변경>
arr1의 값이 계속 변경됨.
* 함수 내에서는 인자로 전달된 배열의 길이를 계산할 수 없음
그래서 배열의 크기나 길이정보도 함께 인자로 전달해야 함
- Call-by-value = 단순히 값을 전달하는 형태의 함수호출
- Call-by-reference = 메모리의 접근에 사용되는 주소 값을 전달하는 형태의 함수호출
ex) Swap 함수의 경우 포인터를 사용해 Call-by-reference형태를 띈다.
ex) scanf 함수도 Call-by-reference형태
Q1) 변수 num에 저장된 값의 제곱을 계산하는 함수를 정의하고 main에서 호출
1. Call-by-value 기반의 SquareByValue 함수
2. Call-by-reference 기반의 SquareByReference 함수
Q2) 세 변수에 저장된 갑을 서로 뒤바꾸는 함수 정의, Swap3
<const 선언>
- 포인터 변수가 참조하는 대상의 변경을 허용x
- 변수를 상수화
- 프로그램 코드의 안전성이 높아짐
반응형
'언어 > C' 카테고리의 다른 글
[C] 배열의 오름차순 병합 a,b,c (0) | 2018.10.28 |
---|---|
[C] sin/cos 함수그리기 (1) | 2018.10.28 |
[C] 포인터와 배열(☆) (0) | 2018.10.09 |
[C] 포인터 (0) | 2018.10.06 |
[C] 1차원 배열 (0) | 2018.10.02 |
댓글