본문 바로가기

프로그래밍

[C언어]처음시작하는 기초 문법 알아 보기

 
C언어를 처음 시작할 때는 포인터나 구조체 주소들을 이해하기도 힘들고 기본적인 if문이나 for문을 사용하기에도 벅찬 경우가 많습니다. 그래서 기초를 배우는 경우 가장 많이 쓰이는 명령어를 간단한 C언어로 작성하여 알아 보았습니다.


이 문장에서 가장 먼저 나오는 것은 1라인에 #include <stdio.h>라는 문장입니다.
 

이것은 표준입출력과 관련된 명령들이 저장되어 있는 stdio.h라는 헤더 파일을 가져다 쓰기위해서 입력한 것입니다. 헤더 파일들은 확장자가 .h로 되어 있으며 기본 제공되는 것들은 < > 안에 넣어 사용하고 사용자가 작성한 것은 " "안에 넣어 사용합니다. 아무튼 이 문장이 있어야 키보드에서 자료를 입력하고 화면으로 결과를 확인 할 수 있습니다.

3라인에 int main()은 C언어에서 꼭 필요한 함수이며 사용되는 프로그래밍 명령들이 기본으로 들어가는 곳입니다. 이 문장에서 int라고 하는 것은 main()이라는 함수의 형식을 정의 해주는 것입니다. 이 문장에서는 정수형(int)가 사용되었습니다. 정수형으로 선언하면 이 프로그램이 정상적으로 종료 되었을 때 운영체제에 정수형 값을 돌려 보내 잘 종료되었는지 알려 줍니다.
main()이라는 함수는 아래에 {로 시작해서 가장 아래 37라인의 }로 종료가 됩니다. 메인의 전체 구성은
int main()
{

}
이라고 생각하시면 됩니다. 여기서 운영체제에 특별하게 상황을 보고하지 않아도 되는 프로그램들은 int가 아닌 void를 써서 void main()이라고 하면 됩니다. 이렇게 쓰면 반환 값이 없는 main함수가 됩니다.

5라인의 int는 정수형 변수를 선언하고 있는 것입니다. 여기에서는 i, j, k, n, m 이렇게 5개의 변수가 정의 되었습니다. 그 중에 j는 0이라는 값으로 초기화가 되어있고 나머지는 어떤값이 들어있는지 사용자가 예측 할 수 없습니다. 이 변수들을 사용하기 위해서는 아래에서 꼭 값을 넣어 초기화를 해야 합니다. 변수의 선언에는 여러가지 형이 사용되는데 int(정수), long(긴 정수), float(실수), double(긴 실수), char(문자) 등이 사용됩니다.

6라인의printf();명령은 가장 위에 있는 stdio.h 에서 가져 온 명령입니다. 이 명령은 (" ")안에 있는 내용을 화면을 보여 줍니다. 여기서는 "점수를 입력하세요 : "라는 내용이 화면에 보여지게 됩니다.

7라인의 scanf();명령은 (" ")안에 있는 '%d' 형식으로 , 뒤에 있는 'k'라는 변수의 주소'&'에 값을 입력 받으라는 명령입니다. 입력형식에는 %d(정수), %f(실수),%c(문자),%s(문자열)을 기본으로 몇가지가 더 있습니다.  

8라인과 9라인의 내용은 기본 연산입니다. C언어에서 사용되는 기본 산술 연산은 +, -, *, /, %가 있습니다.

10라인의 if()문은 조건 함수 입니다. 이 명령을 다시 쓰면 이렇습니다.
if(조건)
{
    조건에 맞으면 실행
}
else
{
    조건에 맞지 않으면 실행
}
입니다. 여기서 { }이 중괄호는 실행할 명령이 한 줄일 때는 생략해도됩니다. 또 else문은 사용이 필요 없을 때는 생략이 가능 합니다. 조건에서 사용되는 것은 참과 거짓이 판단 되는 1 또는 0 의 값이 나오는 관계 연산을 사용 합니다.
관계 연산은 == (같다), <= (작거나 같다), >= (크거나 같다), < (작다), >(크다), <> (같지 않다) 등으로 사용되며 두개의 값을 비교할 때사용합니다.


14라인에서 사용된 것은 switch함수 명령입니다. 이것은 분기할때 사용됩니다. case에 맞는 값을 찾아가서 그곳에 있는 명령을 실행 하는 것입니다. 전체 형식은
switch(정수형태의 변수 또는 숫자)
{
case 정수형값:
   실행할 명령
   break;
default:
  기본 실행 명령
}
입니다. 숫자를 받아서 그 숫자가 포함된 case를 찾아가 실행 후 break를 만나면 빠져 나오고 그렇지 않으면 아래 case로 내려가 또 실행이 됩니다. 만약 case에 맞는 값이 없으면 default문으로 내려가 실행을 하고 끝이 납니다.

19라인의 명령은 while함수 명령으로 이것은 반복할때 사용하는 것입니다. 형식은
while(조건)
{
   조건이 만족하면 실행
}
입니다. 이 명령은 조건에 만족하면 계속 반복을 하고 만족하지 않으면 한 번도 실행하지 않습니다. 조건은 관계 연산자를 사용합니다.

28라인의 명령은 for 반복 명령문입니다. 이 명령의 형식은
for(시작값, 끝나는 조건, 증가값)
{
  실행할 명령
}
입니다. 여기에서도 조건은 관계 연산자를 사용하는데 다른 점은 변수를 정하여 시작 값과 끝나는 조건과 증가값이 들어간다는 것입니다. 여기서 각 값들을 모두 생략하면 무한 루프가 됩니다.


36라인의 return 0 는 main함수가 무사히 끝났다고 운영체제에게 알려주는 명령입니다. main을 void로 시작했을 때는 사용하지 않습니다.
이상으로 문법적인 설명을 했습니다. 이 소스의 실행 결과는 점수를 입력 받아서 우선 나누기를 하여 몫과 나머지를 구해 두고 if를 사용하여 점수가 60점보다 작으면 기준 미달을 출력하고 크면 switch를 사용하여 위에서 구한 나누기의 몫으로 case에 맞는 값을 찾아가 8과 9가 되는 80,90점대에서는 상위권입니다 를 출력하고 while을 이용하여 위에서 구한 나머지로 1부터 차례대로 숫자를 출력합니다. 값이 7과 6이 되는 70,60점 대에서도 보통수준입니다. 를 출력하고 for문을 이용하여 숫자를 차례로 출력합니다. 위의 점수에 포함되지 않으면 default로 넘어가 입력오류를 출력합니다.