프로그래밍 언어/C
입출력하기
bewisesh91
2021. 12. 3. 17:07
728x90
C 언어에서는 'printf'를 이용하여 출력, 'scanf'를 이용하여 입력을 받는다.
입출력 과정에서 아래와 같이 자료형 형식 지정자를 이용한다.
#include <stdio.h>
int main()
{
int a;
printf("정수를 입력하세요 : ");
scanf("%d", &a);
printf("입력받은 정수 : %d", a);
return 0;
}
그런데 'scanf'의 경우 저장할 변수 앞에 &를 붙인다. &는 주소를나타내는 문자이다.
즉, '&a'와 같이 변수 앞에 &가 붙으면 이는 그 변수 a의 값이 아닌 a의 주소를 의미한다.
따라서 변수 앞에 &를 사용하지 않으면 입력 받은 값을 어떤 주소에 저장할지 모르기 때문에 에러가 발생한다.
'&a'는 a의 주소값이지만 a는 주소가 아니기 때문이다.
단, 문자열 배열의 경우 배열의 특성상 &를 사용하지 않아도 에러가 발생하지 않는다.