Language/C언어
scanf 함수 호출 시 &를 붙이는 이유
Triany
2011. 2. 26. 20:17
#include <stdio.h> int main(void){ int val; scanf("%d", &val); return 0; } |
이렇게 scanf함수 내에서 main 함수에서 선언된 지역 변수에 접근하기 위해서는 해당 변수의 주소를 알아야 한다. 그래서 scanf함수를 호출하면서 값이 채워질 지역 변수 val의 주소 값을 인자로 전달하고 있는것이다. 결국 Call-By-Reference에 해당한다.
char형의 배열로 문자열을 입력받을 때는 왜 &연산자를 붙여주지 않는 것일까?
#include <stdio.h> int main(void){ char str[100]; printf("문자열 입력 :"); scanf("%s", str); return 0; } |