메뉴 건너뛰기

scanf에서 &의 역할

okchoi 2020.06.30 17:30 조회 수 : 28

c언어를 시작하면 printf에서는 &를 안썼는데, scanf에서는 &를 쓸때도 있고, 안쓸때도있습니다.

이 부분이 많이 헷갈리실 것입니다. 

 

변수앞에 &을 붙여 주는 이유는 해당 변수의 주소를 받기 위해서입니다.

(즉, 값을 입력하려면 변수의 주소가 필요하기 때문에 &를 사용해야 합니다.)

 

만약에 a라는 정수형 변수에 10이라는 값이 저장되어 있다면

출력문에서 해당 변수값을 가져와서 그대로 출력을 해 주면 됩니다.

 

int a=20;

printf("a의 값 = %d\n",a);

 

그러나 입력문에서는 값을 메모리(버퍼)에 저장하게 되는데 여기서 scanf() 함수에 포함된 '&'기호를 주소 연산자(&)라고 합니다.

 

즉 사용자가 입력할 값을 해당 주소에 저장하라는 신호를 보내는 것입니다.

 

그런데 문자열에서는 "&" 기호를 사용하지 않는데 그것은 문자열 자체에 주소를 포함하고 있기 때문입니다.

 

 

int a;
char b[20];
scanf("%d", &a); //&를 써야한다.
scanf("%s", b); //&를 안써도 된다. b 자체가 주소
번호 제목 글쓴이 날짜 조회 수
공지 메인 함수가 2개 라는 에러메시지 발생했을 때 해결 방법 okchoi 2022.05.30 26
공지 [warning] implicit declaration of function 'scanf_s' 해결책 okchoi 2022.05.24 25
공지 main' must return 'int' 오류에 대한 해결방법 okchoi 2022.05.02 990
공지 main 함수 관련 문의 okchoi 2022.05.02 13
공지 Dev C++ 테마파일 적용시키기 okchoi 2022.04.19 58
공지 연산자 나머지(%%) 표현 방법 okchoi 2022.04.11 209
공지 실행파일 사라지는 현상 okchoi 2022.04.10 8
공지 새로운 프로젝트 생성 방법 okchoi 2022.04.04 8
공지 main 함수 앞에 int, 마무리 할 때 return 0;은 무조건 써야 하는 건가요? okchoi 2022.03.22 348
공지 기말고사 Q/A 모음 okchoi 2021.12.03 22
공지 [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode 해결방법 okchoi 2021.11.22 46
공지 scanf_s vs scanf okchoi 2021.10.23 15
공지 압축상태에서 프로젝트 파일 클릭시 일어나는 현상 okchoi 2021.09.24 7
공지 파일 확장명 표시하는 방법 okchoi 2021.09.12 75
공지 (C/C++)맥북에서 C언어,C++ 개발 환경 세팅하기 okchoi 2021.09.04 16
공지 Layout 파일 okchoi 2021.07.31 12
공지 Dev C++ 언어 한글(Korean) 설정 okchoi 2021.03.08 2277
공지 void main() 사용시 오류 okchoi 2020.10.24 290
공지 변수 선언 방법 okchoi 2020.07.09 8
공지 Id returned 1 exit status 오류 해결 방법 okchoi 2020.04.20 10643
32 산술연산자 나눗셈 사용법에 대해서 질문 드립니다. okchoi 2020.04.30 601
31 macOS Xcode 오류 okchoi 2021.10.18 307
30 질문있습니다. (scanf() 사용시 개행문자를 넣지 않는 이유) okchoi 2020.04.18 285
29 Dev C++에서 헤더파일 추가하는 방법 okchoi 2020.10.05 138
28 C언어 과제 제출 방법(첫번째 과제) okchoi 2021.10.03 51
27 scanf_s 사용시 공백까지 포함해서 문자열을 입력받고 싶을 경우 file okchoi 2020.04.19 42
26 [warning] implicit declaration of function 'scanf_s' 해결책 okchoi 2020.06.12 37
25 전처리기 지시자의 의미 okchoi 2020.06.12 30
» scanf에서 &의 역할 okchoi 2020.06.30 28
23 UNIX, Linux 및 Windows의 표준 데이터 유형 okchoi 2022.04.03 26
위로