brunch

You can make anything
by writing

C.S.Lewis

초딩도 하는 生코딩

두 번째

"1+1=2" 어떻게 하다 보니 두 번째 글도 더하기를 하게 됐습니다.^^  

평범한 우리는 자주 망각합니다. 쉽다고 생각한 것이 쉬운 게 아님을....

쉽지 않은 눈으로 1+1=2를 다시 보면 결코 만만한 게 아닙니다. 수학을 전공한 자에게 "자 1+1=2를 증명하세요" 라고 요청한다면 과연 쉽기만 한 문제일까요?   

서두에 이런 이야기를 드리는 이유는 C언어뿐만 아니라 모든 것이 원래 생각하고 있던 패턴을 깨고 다르게 생각하는 데서 발전을 이룰 수 있다고 믿기 때문입니다.

아무튼 오늘은 1+1=2를 C언어로 구현하되 1를 사용자로 부터 입력 받아서 프로그램 하는 방법을 소개 드립니다. C언어는 이미 누군가에 의해 만들어진 많은 표준함수를 가지고 있습니다. C언어에서의 함수를 제가 감히 정의한다면 Input 과 Output이 있는 "연산자"라고 명명(命名)할 수 있고, 그 예로 y=f(x) 즉 x라는 input과 y라는 output이 존재합니다. 아무튼 C언어는 이미 위와 같은 함수를 많이 만들어 가지고 있습니다. 프로그래머는 단지 어떤 함수가 있고, 그 함수를 어떻게 쓰는지만 안다면 자신의 프로그램에서 그냥 사용하기만 하면 됩니다.  

그래서 첫번째 매거진에서 제가 작성했던 프로그램의 #include<stdio.h> 이것의 의미는 "이미 만들어진 라이브러리(함수 모음) 중 표준입출력에 대한 부분을 포함시켜라" 라는 의미가 됩니다.(stdio - standard input output 이라는 의미입니다.)   

그 라이브러리(함수 모음)에 printf()라는 함수가 있고 오늘 같이 볼 scanf()라는 함수도 있습니다. 그 외 엄청 많은 함수가 있죠. printf()함수는 화면에 값을 출력하는 함수이고, scanf()함수는 사용자가 입력한 값을 받아와 메모리 공간에 집어 넣는 함수입니다.  

다음 그림을 참고하세요.      


메모리 공간에 a,b,c 라고 이름 붙이면 그 공간의 주소는 &a.&b,&c가 됩니다.  

택배를 시키려고 집을 옮기진 않죠?^^   

집 주소만 알려주면 됩니다. 메모리 공간의 주소는 &을 변수(메모리 공간의 이름)앞에 붙여서 표현합니다.  

scanf(“%d”,&a);는 a의 주소공간에 %d(정수형으로) 값을 받아 넣어라 입니다.   

다음과 같이 프로그램 하면 사용자로부터 1를 입력 받아 2을 출력할 수 있습니다.


위 예제에서 scanf는 scanf_s로 쓰면 요즘 버전에서 문제 없습니다.    

그럼 다음에 또 올께요~~

**C언어에서 제공하는 표준라이브러리에 대한 설명은 다음 URL에서 확인 할 수 있습니다.

http://www.msdn.com

매거진의 이전글 초딩도 하는 生코딩
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari