C언어 기본적인 문법

이번 챕터에서는 C언어의 기본적인 문법에 대해서 다룹니다.

본 문서는 https://wikidocs.net/2145를 참고하여 작성되었습니다.

왜 C언어인가?

사실 개인적인 생각으로는 C언어가 초심자에게 맞는 언어는 아니라고 생각합니다. 옛날과는 다르게 현재에는 C언어보다 쉬운 문법들을 가진 언어들이 많이 나왔으며 (e.g. Python, Ruby, Java etc..) 운영체제가 아닌 영역의 일반적인 소프트웨어를 개발할 때는 C언어보다 Java, Python과 같은 언어들이 오히려 더 적합하다고 생각합니다. 그럼에도 불구하고 아직까지도 많은 대학이나 교육기관에서는 C언어를 첫 언어로 가르치는 곳이 많은데, (MIT에서는 Python을 첫 언어로 가르친다.) 그 이유는 C언어로 프로그래밍을 접할 경우 데이터 타입, 컴파일, 메모리 관리 등 단순히 코딩을 하는 것 이외에도 컴퓨터공학에 대한 지식을 폭 넓게 알 수 있기 때문입니다. 특히 프로그래밍 경시대회용으로는 거의 C나 C++이 표준으로 되어있는데, 그 이유는 바로 프로그램 구동 속도가 타 언어들에 비해서 매우 빠르기 때문. 이러한 장점때문에 운영체제를 개발할 때는 필수적으로 C언어가 쓰이는 이유이기도 합니다.

위의 말이 잘 이해가 되지 않는다면, 프로그래밍 경시대회용으로는 성능이 매우 좋은 언어이기 때문에 C를 배우는 것이고, C의 문법이 타 언어에 비해서 문법이 형식적이고, 고려해야할 사항이 많기 때문에 이후에 다른 언어를 배울 때는 더욱 쉽고 빠르게 습득할 수 있다는 장점을 가지고 있는 언어라는 정도만 이해하시면 좋을 것 같습니다.

C언어 기본적인 구조

#include <stdio.h>
int main(){

  return 0;
}

일단 기본적으로 C언어의 가장 기본적인 형태입니다. #include 문법을 통해서 stdio.h 헤더파일을 import합니다.

여기서 입문자들이 가장 많이 하는 실수는 stdio를 studio라고 적는 것 입니다. stdio는 Standard Input/Output의 약자입니다.

stdio.h에서는 C언어의 기본적인 Input/Output 함수들이 담겨있는 라이브러리입니다. 이 표준 라이브러리에는 기본적으로 printfscanf함수를 포함하고 있기 때문에, stdio.h를 꼭 import 시켜줘야만 printfscanf함수를 사용할 수 있습니다.

C언어의 자료형

구분 변수타입 포맷터
정수 int %d
실수 float %f
문자 char %c
문자열 char[] %s
논리값 bool

기본적인 C언어의 자료형입니다. 위의 자료형은 C언어뿐만 아니라 다른 언어들에서도 비슷하게 사용되니, 잘 익혀두면 좋을 것같습니다.

변수 선언하기

// 변수타입 변수명;
int number; //정수형 타입의 number 변수 선언
int a = 10; // 정수형 타입의 a 변수 선언과 함께 10으로 초기화
int a, b; // 정수형 타입 a와 b 변수 동시에 선언
float c = 3.14 // 실수형 타입 c 변수 선업

C언어Python과 다르게 변수를 선언할 때, 꼭!! 변수타입이 앞에 있어야합니다.

변수 이름 규칙

C언어는 변수이름을 정할 때, 몇가지의 규칙이 있습니다.

  1. 변수의 이름은 알파벳, 숫자, 언더바(_)로만 구성해야 한다.
  2. 대소문자를 구분한다. (number과 Number은 다른 변수입니다.)
  3. 변수 이름의 첫글자는 숫자로 시작할 수 없다.
  4. 변수 이름에 공백을 포함할 수 없다.
  5. 예약어(키워드)를 사용할 수 없다. (int, main 등)

위 규칙에 따라서 아래와 같은 변수 명은 모두 잘못된 변수명입니다.

// Wrong
int no-game;
int 1number;
int int;
char[10] student name;
int person`s age;

아래의 변수 명은 사용할 수 있는 올바른 변수명입니다.

// Correct
int no_game;
int _number;
int integer;
char[10] student_name;
int persons_age;

연산

변수끼리 더하거나 빼는 등 다양한 연산을 하게 되는데 주로 다음과 같은 연산자 들을 사용합니다.

연산자 기능
= 오른쪽 값을 왼쪽에 대입
+ 왼쪽과 오른쪽의 합
- 왼쪽에서 오른쪽을 뺌
* 왼쪽과 오른쪽의 곱
/ 왼쪽을 오른쪽으로 나눔
% 왼쪽을 오른쪽으로 나눈 나머지

다른 자료형과의 연산

원칙적으로 보자면, 서로 다른 자료형끼리 연산을 하는 것은 불가능합니다. 하지만, 3(int) + 1.2(float)와 같은 연산의 경우에는 3인 정수(int)를 3.0인 실수(float)로 보면 되기 때문에, C언어에서는 이러한 경우를 연산하는 과정에서 형을 바꾸어 처리합니다.

이 경우에는 기본적으로 크기가 작은 자료형과 큰 자료형을 연산하게 되면, 큰 자료형으로 바뀌게 됩니다.

연산 결과
int + float float
int / float float
int * float float

results matching ""

    No results matching ""