인프런 커뮤니티 질문&답변

ccgg cc님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C언어

함수 9 - 3 부분 질문있습니다.

작성

·

160

0

두개의 정수중 높은값을 출력하는 함수부분에서

printf("Input two integers :");

if( scanf(%d %d", &i1, &i2) ! = 2) break;

이부분이 잘 이해가 가지 않습니다 ㅠ

코드를 제 방식대로 해석해보면

 입력받은 i1, i2 주소값이 2가 아닐때 반복문을 끝낸다 라고 적혀있는데   =>   !=2)break;

그럼 정수 2개값을 입력할떄 2가 없으면 break 가 걸려서 코드가 실행이 되지 않는건가요??

문자를 입력하였을떈 break가 걸려서 반복문이 끝나는게 이해가 가는데

코드가 저렇게 되어있으면 숫자 2 이외의 숫자를 넣었을때 왜 코드가 돌아가는지 이해가 가질 않습니다.

긴글 읽어주셔서 감사합니다 !

답변 2

1

ccgg cc님의 프로필 이미지
ccgg cc
질문자

@Hello yeo  감사합니다 ㅎㅎ 덕분에 이해가 됐네요 

1

scanf는 성공적으로 입력받은 개수를 반환합니다.
i1, i2의 주소와는 관련이 없습니다.

ccgg cc님의 프로필 이미지

작성한 질문수

질문하기