책 내용 질문하기
Scanf 에서의 &의미
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
264
조회수
590
작성일
2019-03-27
작성자
탈퇴*원
첨부파일
Scanf 후에 &num[i]라고 되어있는데
무슨뜻인가요
&가 주소값을 가리키는걸로 알고있는데
아무리생각해도 그냥 num[i]가 맞는거 같아요 ㅜㅜ
답변
2019-03-28 10:41:10
안녕하세요 길벗수험서 운영팀입니다.
scanf는 변수의 이름이 아닌 변수의 주소를 인자로 받습니다.
키보드로 입력한 값을 해당 변수의 주소에 저장하라는 명령어이기 때문이죠.
이것을 배열에서 주의하셔야 할점은 배열의 '이름'은 주소를 의미한다는 것입니다.
char a[10];
scanf("%s", a);
a는 주소이므로 &를 붙일 필요가 없습니다.
하지만 a[1], a[2]와 같은 주소인자가 붙을 경우 일반 변수와 같아집니다.
따로 주소를 불러와야 하죠.
char a[10];
scanf("%c", &a[3]);
이렇게 말이죠.
만약 &를 사용하지 않으려면
char a[10];
scanf("%c", a+3);
이렇게는 사용이 가능합니다.
행복한 하루되세요 :)
-
관리자2019-03-28 10:41:10
안녕하세요 길벗수험서 운영팀입니다.
scanf는 변수의 이름이 아닌 변수의 주소를 인자로 받습니다.
키보드로 입력한 값을 해당 변수의 주소에 저장하라는 명령어이기 때문이죠.
이것을 배열에서 주의하셔야 할점은 배열의 '이름'은 주소를 의미한다는 것입니다.
char a[10];
scanf("%s", a);
a는 주소이므로 &를 붙일 필요가 없습니다.
하지만 a[1], a[2]와 같은 주소인자가 붙을 경우 일반 변수와 같아집니다.
따로 주소를 불러와야 하죠.
char a[10];
scanf("%c", &a[3]);
이렇게 말이죠.
만약 &를 사용하지 않으려면
char a[10];
scanf("%c", a+3);
이렇게는 사용이 가능합니다.
행복한 하루되세요 :)