책 내용 질문하기
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);

     

    이렇게는 사용이 가능합니다.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.