메뉴 건너뛰기

scanf에서 &의 역할

okchoi 2020.06.30 17:30 조회 수 : 29

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 34
공지 [warning] implicit declaration of function 'scanf_s' 해결책 okchoi 2022.05.24 35
공지 main' must return 'int' 오류에 대한 해결방법 okchoi 2022.05.02 1053
공지 main 함수 관련 문의 okchoi 2022.05.02 14
공지 Dev C++ 테마파일 적용시키기 okchoi 2022.04.19 60
공지 연산자 나머지(%%) 표현 방법 okchoi 2022.04.11 240
공지 실행파일 사라지는 현상 okchoi 2022.04.10 9
공지 새로운 프로젝트 생성 방법 okchoi 2022.04.04 9
공지 main 함수 앞에 int, 마무리 할 때 return 0;은 무조건 써야 하는 건가요? okchoi 2022.03.22 362
공지 기말고사 Q/A 모음 okchoi 2021.12.03 23
공지 [Error] 'for' loop initial declarations are only allowed in C99 or C11 mode 해결방법 okchoi 2021.11.22 57
공지 scanf_s vs scanf okchoi 2021.10.23 16
공지 압축상태에서 프로젝트 파일 클릭시 일어나는 현상 okchoi 2021.09.24 8
공지 파일 확장명 표시하는 방법 okchoi 2021.09.12 77
공지 (C/C++)맥북에서 C언어,C++ 개발 환경 세팅하기 okchoi 2021.09.04 18
공지 Layout 파일 okchoi 2021.07.31 13
공지 Dev C++ 언어 한글(Korean) 설정 okchoi 2021.03.08 2791
공지 void main() 사용시 오류 okchoi 2020.10.24 578
공지 변수 선언 방법 okchoi 2020.07.09 9
공지 Id returned 1 exit status 오류 해결 방법 okchoi 2020.04.20 11097
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 151
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 29
11 전처리기 지시자의 의미 okchoi 2020.06.12 30
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 12
6 산술연산자 나눗셈 사용법에 대해서 질문 드립니다. okchoi 2020.04.30 601
5 새로운 프로젝트 생성시 C++ vs C 선택의 차이점 okchoi 2020.04.30 11
4 scanf_s 사용시 공백까지 포함해서 문자열을 입력받고 싶을 경우 file okchoi 2020.04.19 45
3 질문있습니다. (scanf() 사용시 개행문자를 넣지 않는 이유) okchoi 2020.04.18 290
위로