메뉴 건너뛰기

scanf에서 &의 역할

okchoi 2020.06.30 17:30 조회 수 : 20

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 23
공지 [warning] implicit declaration of function 'scanf_s' 해결책 okchoi 2022.05.24 14
공지 main' must return 'int' 오류에 대한 해결방법 okchoi 2022.05.02 742
공지 main 함수 관련 문의 okchoi 2022.05.02 11
공지 Dev C++ 테마파일 적용시키기 okchoi 2022.04.19 55
공지 연산자 나머지(%%) 표현 방법 okchoi 2022.04.11 97
공지 실행파일 사라지는 현상 okchoi 2022.04.10 6
공지 새로운 프로젝트 생성 방법 okchoi 2022.04.04 6
공지 main 함수 앞에 int, 마무리 할 때 return 0;은 무조건 써야 하는 건가요? okchoi 2022.03.22 275
공지 기말고사 Q/A 모음 okchoi 2021.12.03 21
공지 [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode 해결방법 okchoi 2021.11.22 26
공지 scanf_s vs scanf okchoi 2021.10.23 14
공지 압축상태에서 프로젝트 파일 클릭시 일어나는 현상 okchoi 2021.09.24 6
공지 파일 확장명 표시하는 방법 okchoi 2021.09.12 72
공지 (C/C++)맥북에서 C언어,C++ 개발 환경 세팅하기 okchoi 2021.09.04 13
공지 Layout 파일 okchoi 2021.07.31 10
공지 Dev C++ 언어 한글(Korean) 설정 okchoi 2021.03.08 1530
공지 void main() 사용시 오류 okchoi 2020.10.24 248
공지 변수 선언 방법 okchoi 2020.07.09 7
공지 Id returned 1 exit status 오류 해결 방법 okchoi 2020.04.20 9751
18 [Warning] implicit declaration of function 'system' [-Wimplicit-function-declaration] okchoi 2020.12.07 5
17 파일명 확장자가 보이지 않을 떄 file okchoi 2020.10.16 8
16 Dev C++에서 헤더파일 추가하는 방법 okchoi 2020.10.05 106
15 오버플로우가 발생하는 이유가 보수와 관련이 있나요? okchoi 2020.09.27 3
14 Makefile.win 파일 okchoi 2020.09.08 13
13 조건문에서 중괄호 사용 + putchar 문의 드립니다. okchoi 2020.07.10 6
» scanf에서 &의 역할 okchoi 2020.06.30 20
11 전처리기 지시자의 의미 okchoi 2020.06.12 27
10 [warning] implicit declaration of function 'scanf_s' 해결책 okchoi 2020.06.12 37
9 Dev-c++에서 for 오류 file okchoi 2020.05.16 7
8 c언어 자리수 출력 okchoi 2020.05.05 8
7 putchar, getchar, scanf_s() 관련 질문입니다. okchoi 2020.05.01 10
6 산술연산자 나눗셈 사용법에 대해서 질문 드립니다. okchoi 2020.04.30 601
5 새로운 프로젝트 생성시 C++ vs C 선택의 차이점 okchoi 2020.04.30 10
4 scanf_s 사용시 공백까지 포함해서 문자열을 입력받고 싶을 경우 file okchoi 2020.04.19 34
3 질문있습니다. (scanf() 사용시 개행문자를 넣지 않는 이유) okchoi 2020.04.18 280
위로