728x90
반응형
- scanf에 &(주소연산자)가 들어가는 이유.
- scanf에 입력을 받을 때에는 앞서 선언한 변수와 서식문자(%d 같은)에 의해 메모리 공간이 미리 할당되어 있어야 한다.
- 예)
scanf("%d", &num);
%d : 10진수 정수(서식문자)
&num : 변수
- 이때, 입력받는 값을 저장하기 위해서는 할당된 메모리 공간을 지정해주어야 한다(10진수 정수, 변수 num에 저장하라고 했지만 변수 num이 어느 위치에 존재하는지 모르기 때문이다).
- 따라서 변수 num이 있는 메모리의 주소를 알려주어야 하는데, 이 때 사용하는것이 &(주소연산자)이다.
- 주소연산자를 통해 해당 변수 num의 할당된 메모리 공간이 주소를 알려주기 때문에 입력이 가능하다.
728x90
반응형
'Study > C언어' 카테고리의 다른 글
C언어 - 2차원 배열과 메모리 크기 (0) | 2018.12.20 |
---|---|
C언어 - 포인터 Call-By-Value와 Call-By-Reference의 구분, 더블포인터의 이해 (0) | 2018.12.17 |
C언어 - int로 선언한 변수에 입력한 값을 char로 출력 할 경우 오류가 나는 이유. (0) | 2018.12.17 |
C언어 - 배열과 스택, 버퍼 오버플로우 (0) | 2018.12.17 |
C언어 - scanf_s의 사용법과 예제 (0) | 2018.12.13 |
댓글