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 |