본문 바로가기
언어/C

[C] 포인터와 함수

by merona99 2018. 10. 10.
반응형

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

댓글