scanf 사용법 22.

이 본문은 홍정모의 흉내를 내면서 배우는 C언어 3.3 강의 내용을 활용해서 작성됐습니다 홍정모의 흉내를 통해 배우는 C언어는 다음 홈페이지에서 수강하실 수 있습니다.타베씨++의 성원으로 새롭게 개발된 C언어로 시작하는 프로그래밍 입문 강의입니다. ‘타베씨’와 함께 프로그래밍 인생을 업그레이드 해보세요. 입문 초급 프로그래밍 언어 C 온라인 강의 C 언어, 씨 언어, C 강의, 다배 씨, 홍정모, 프로그래밍 inflearn.comscanf 사용법은 printf 사용법과 비슷하다. 다음 예를 보자.여기서 scanf 가 printf 와 다른 점은 변수 앞에 &(Ampersand)를 붙이는 것이다. 이것을 마이크로소프트의 컴파일러에 컴파일 하려고 하면, scanf와 안전하지 않으므로 scanf_s의 사용을 권장한다는 이야기가 있다. 이런 것들을 해결하기 위해서는 첫 번째 줄에 이 줄을 쓰면 된다.이제 변수 앞에 &를 붙이는 이유를 알아보자. 프로그램을 실행할 때, scanf 함수를 만났을 때, scanf 함수를 실행하기 위해 변수의 주소를 요구한다. 따라서 이 변수의 주소를 보내기 위해서 변수 이름 앞에 & 을 작성한다. 그리고 Scanf 함수는 데이터를 입력하여 주소지 안에 넣는다. 하지만 마이크로소프트는 변수의 주소를 받아 원래 의도했던 데이터 이상의 데이터를 입력하도록 해 주소 밖의 데이터를 수정할 수 있는 문제점을 걱정했다. 따라서 메모리 주소에 작성하는 데이터의 크기를 결정하는 함수인 scanf_s를 만든 것이다.

정리하면 Scanf는 메모리의 주소를 받아 직접 접속하여 데이터를 입력하는 구조로 되어 있다. 위의 예에서 scanf 함수를 거친 순간 i의 값이 입력된 값으로 바뀐다. 따라서 printf 에서 i의 값을 출력하고자 할 때 scanf 함수로 바뀐 값이 출력된다.

error: Content is protected !!