우리는 흔히 scanf함수를 사용할 때 변수앞에 주소연산자(&)를 붙인다. 왜일까?
그 이유를 알아보기 위해 먼저 scanf 함수의 원형부터 찾아보자
int scanf(const char *format, [address…]);
이것이 scanf 함수의 원형이다. int(정수)형으로 반환값을 받도록 되어있고, 인자로 char(문자)형 포인터인 포맷과 주소를 받고있다.
여기서 이 주소! address라는 말뜻처럼 두번째 인자로 주소값을 받는다. 왜?
바로 저번에 배웠던 call by reference 때문이다. scanf는 변수의 값을 변경시키기 위해서 주소값을 통해 변수 메모리에 접근한다.
그렇기 때문에 scanf함수를 사용할 때 주소연산자(&)를 통해 변수의 주소를 알려주어야 한다.
'Programing > C' 카테고리의 다른 글
C :: 랜덤을 사용하는법 (0) | 2017.04.15 |
---|---|
C :: 배열포인터와 포인터배열 (0) | 2017.04.15 |
C :: 2차원배열 ㄹ정렬하기 (0) | 2017.04.04 |
C :: 2차원배열에서의 오름차순과 그 역순 (0) | 2017.04.04 |
C :: 달력 출력하기(2017년 기준) (0) | 2017.04.04 |