14-1 함수의 인자로 배열 전달

- 함수는 인자를 복사하여 전달한다. 그것이 매개 변수이다.

- 배열을 통째로 전달하는 것은 불가능하지만, 배열의 주소 값을 인자로 전달할 수는 있다.


sizeof(배열이름) / sizeof(자료형) : 배열의 길이

- 배열을 인자로 전달받는 함수의 경우, 대부분 배열의 길이도 함께 전달받는다.


14-2 Call-By-Value 와 Call-By-Reference


 * call-by-value ( 값에 의한 호출 )

- 일반적인 함수 호출의 형태. 값의 복사.
- 호출된 함수 내에서 전달된 값을 변경하더라도, 호출한 함수에서의 값은 변하지 않는다.


 * call-by-reference ( 참조에 의한 호출 )

- 주소를 인자로 전달한다. 
- 호출된 함수 내에서 호출한 함수의 변수를 조작할 수 있다.


- scanf에서 입력받을 변수에 &를 붙이는 이유는 주소 값을 전달해주기 위해서이다.
- string(char형 배열)으로 입력받을 때에는 그 이름 자체가 주소 값이므로 &를 붙이지 않는다.


14-3 const 키워드

const int* pnt = &a;
- 포인터가 가리키는 변수를 상수화 하겠다는 의미.
- 포인터를 통한 값의 변경이 금지된다. 하지만 해당 변수의 이름을 통한 값의 변경은 허용된다.

int* const pnt = &a;
- 포인터를 상수화 하겠다는 의미.
- 포인터를 변경하는 것이 불가능하다. 하지만 포인터가 가리키는 변수는 변경 가능하다.

const int* const p = &a;
- 포인터와 포인터가 가리키는 변수를 상수화.


- const 키워드를 많이 사용하게 될수록 코딩이 안정적이게 된다.



'학부 전공 > C' 카테고리의 다른 글

17. 포인터의 포인터  (0) 2010.07.14
16. 다차원 배열  (0) 2010.07.14
13. 포인터와 배열  (0) 2010.07.14
12. 포인터의 이해  (0) 2010.07.14
11. 1차원 배열  (0) 2010.07.14

+ Recent posts