모든 C 프로그램은 main 함수를 필요로 한다. main 함수의 기본형은 다음과 같다.
1 2 3 4 | int main(void) { return 0; } | cs |
int main(void) 이후에 중괄호를 통해 감싸주고, 그 안에 내용을 집어넣는다.
언젠가는 설명하겠지만, 이 기본형에서 인자값은 없으며, int형인 0을 반환하고 있다.(main 함수의 종료 = 프로그램의 정상적 종료를 의미)
void main()은 비표준으로써, VC에서만 동작한다. 논리적으로 생각해 보자면, 0을 반환함으로써 프로그램의 종료를 표시하는 것이 맞겠으나, void형으로 main을 선언함으로써 그것이 불가능하게 되는 것이다. 하여간 void main()은 표준이 아니다.
그렇다고 저렇게 네줄만 있어서는 부족하다. 단지 프로그램이 실행되고, 종료될 뿐이다.
1 2 3 4 5 6 7 8 9 | #include <stdio.h> int main(void) { int a = 1+1; printf("Hero Loves Heroine.\n"); printf("%d",a); return 0; } | cs |
이정도면, 화면에 무언가를 출력하는 프로그램이 된다.
비주얼 스튜디오에서 Ctrl + F5를 누르면 실행시킬 수 있다.
아까는 없었던 #include문이 생겼는데, 우선 #이 앞에 붙는 명령은 전처리기를 의미한다.(언젠가는 정리하겠다.)
본 프로그램이 실행되기 이전에 실행된다. 지금은 stdio.h라는, 표준 입출력을 의미하는 헤더 파일을 불러옴으로써, 이 헤더파일에 정의되어있는 함수를 사용할 수 있게 해준다.
그렇게 해서, printf 함수를 통해(그냥 print가 아닌 이유는 아마도 기본 기능이 아니라는 의미가 아닐까 하고 추측한다.) "Hero Loves Heroine"을 출력해주게 된다. 여기서 "(쌍따옴표)는 출력하고자 하는 문자열(두글자 이상의 문자. 한글자는 'a' 식으로 표현가능)을 둘러싸서 출력하는 범위를 나타내는 역할이다. \n의 경우에는 줄을 띄우는 기능을 한다.(대부분의 한국인의 키보드에는 \대신 원화 표시가 있을 것이다. 그냥 원n 하면 된다.)
printf는 또한 특정 변수를 출력할 수도 있는데. 7번 줄처럼 하면 된다. %d는 정수형 값을 의미하는데. 이것은 변수형마다 다르게 표시해야 한다.
정수형 | %d |
실수형 | %f |
문자형 (1글자) | %c |
문자열 (2글자 이상) | %s |
(뭔가 빼먹은것 같다.)
추가로, \n은 줄 띄우기, \t는 탭 기능을 한다. 이스케이프 문자라고 하는데, 언젠가 필요하다고 생각되면 따로 써놓겠다. \0은 NULL으로써, 문자열의 끝을 나타낸다.
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> int main(void) { printf("총 10개의 자리로 정수 출력 :%10d\n",1234); printf("총 10개의 자리 중 왼쪽 정렬로 출력 :%-10d\n",16); printf("음수 출력 :%-10d\n",-1234); printf("총 10개의 자리 중 빈곳은 0으로 출력 :%010d\n",1234); printf("실수형으로 출력 :%.2f\n",0.1234); return 0; } | cs |
이건 진짜 번외지만... 9번째 줄은 알아둘 필요가 있다. 저렇게 써두면 반올림 해서 소수점 이하 둘째 자리까지만 출력된다.
scanf에 대해서 설명하지를 않았다, 치명적인 실수다!
scanf는 printf와 반대로 값을 받아들인다. 형식은 printf와 유사하다.
1 2 3 | int num; scanf("%d", &num); | cs |
변수명 앞에 &이 붙었음에 주의힌다. 변수의 주소값과 관계되어 있는 문제다.
num에 값이 있더라도 새로운 값을 받을 수 있다. 무조건 값이 비어있어야 scanf가 작동하는건 아니다.
'Programming > C' 카테고리의 다른 글
[C언어] 연산자와 연산자 우선순위 (0) | 2015.01.17 |
---|---|
[C언어] 아스키 코드와 문자열 (0) | 2015.01.17 |
[C언어] 자료형과 변수 선언 (0) | 2015.01.17 |
[C언어] 개발환경(Visual Studio) 구축하기 (0) | 2015.01.17 |
[C언어] 개론 (0) | 2015.01.17 |