C 언어 기초

[C언어] 2. C언어 프로그래밍 기초: 규칙과 기본구조, 변수와 상수, 출력과 입력

Ddolgom 2023. 2. 6. 23:50
반응형

 

1. C 언어 기본작성 규칙

 

프로그램은 main함수를 호출하면서 시작되며, 모든 함수는 블록 구조로 정의 된다.

 

블록구조란?

중괄호{}로 감싸져 있는 코드 영역

 

영문자의 경우 대소문자를 엄격하게 구분하며 모든 명령문은 세미콜론(;)으로 마무리 지어야 한다. (생략 x)

 

* 주석

 한줄 주석 //

여러줄 주석 /* */

 

-> 파이썬과의 차이점

1. 들여쓰기 (indentation)이 없고, 중괄호안에 코드가 들어가면 된다.

2. 파이썬과는 달리 큰따옴표와 작은따옴표를 구별한다. 

3. 모든 문장 뒤에는 세미콜론이 무조건 들어가야 하며, 들어가지 않으면 에러가 뜬다.

4. 파이썬은 인터프리터 언어라서 행단위 번역이 되며, 목적 프로그램이 생성되지 않는다. C언어 같은 경우에는 컴파일 언어라서 컴파일러가 exe파일을 생성하고, 한번더 직접 실행해 주어야 한다.

 

2. C 소스파일의 기본구조

# include <stdio.h> // 전처리기 지시문(preprocessor directive)

int main(void) { // main 함수의 정의
	printf("안녕 \n"); // 화면에 출력
    return 0;
}

첫줄은, 전처리기 지시문(preprocessor directive)로, C언어로 코드를 작성하면 이를 컴퓨터가 알아 들을 수 있는 기계어로 번역하는 과정이 필요하다. 이를 컴파일이라고 하며, 저번 시간에 설치했던 비주얼 스튜디오가 컴파일러의 역할을 한다.

 

사람은 컴파일 하기 전에 컴파일에 필요한 것들을 컴파일러인 비주얼 스튜디오에 알려줘야 한다. 이때 사용하는 것이 전처리기 지시문이다. 파이썬에서 주석으로 사용되는 #이 C언어에서는 전처리기 지시문앞에 배치를 해주어야 한다.

 

# include는 가장 많이 사용하는 지시문으로, 지정한 파일을 코드에 포함하라는 뜻으로 파이썬에서 import와 역할이 같다.

( 파이썬에서는 각종 라이브러리를 가져올때 import를 사용하였다.)

 

stdio.h는 표준 입출력 (standard Input Output)함수를 포함한 헤더 파일(header file)이다.

studio.h라고 오타를 치는 경우가 많은데, 주의해야한다.

 

헤더파일은 확장자가 h인 파일로, 다른 파일에 정의된 상수나 변수, 함수 등을 사용하기 위해 만드러졌다.

stdio.h 파일에는 위에서 사용한 printf()함수 등의 입출력 관련 함수들이 선언되어 있다.

그래서 stdio.h 파일을 추가하면 추가 작업 없이 printf() 함수를 바로 사용할 수 있다.

(printf()함수이다. print에 f가 추가되었다. \n은 파이썬과 동일하게 줄바꿈하는 역할을 수행한다. 여러줄이면 줄을 바꾸어서 화면에 출력해준다.)

 

int main(void) {}는 main이라는 이름의 함수 정의를 나타낸다.

int는 integer의 정수를 의미하며, 파이썬과는 다르게 변수앞에 일일이 데이터타입을 지정(명시)해주어야 한다.

(뒤에서 자세히 언급할 예정이다.)

void는 함수가 전달받는 값인데, void를 넣으면 전달 받는 값이 없다는 뜻이다.

 

main()함수는 모든 프로그램의 시작점으로, 한 파일에는 반드시 하나만 존재해야 한다. 

그리고 없으면, 오류가 발생하므로 반드시 작성해야 한다. 

 

 

 

Python의 global namespace와 같이 전체 틀을 잡는 역할을 한다고 보면 된다.

 

출처 : https://djangojeng-e.github.io/2020/11/09/Python-%EA%B8%B0%EC%B4%88-18%ED%8E%B8-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%B4%EB%9E%98%EC%8A%A4/

 

 

마지막에 작성된 return 0; 의 의미는 성공적으로 해당 함수가 끝났다는 것을 운영체제에게 알리기 위해서 사용하는 것이다. 더 정확하게 운영체제에게 에러가 없음을 알릴때 0을 리턴한다.

 

print('안녕') # 위와 동일한 결과를 출력하는 파이썬 코드

위의 파이썬 코드 한줄이면 끝날일을 이렇게 많은 설명으로 할애를 하였다. 

 

3. 변수 (Variable type)

변수는 데이터를 저장하는 공간 및 저장된 값 자체를 의미한다.

좀더 정확하게 표현을 하면, 변수를 만들면 컴퓨터는 값을 저장하겠다는 신호로 알고 메모리에 변수명으로 공간을 할당한다.

변수에 값을 저장하는 것을 할당(assignment)라고 하며, 모든 변수는 사용전에 최초 한번은 할당(초기화)되어야 한다.

이는 변수 선언이라고도 한다.

변수 할당 = 초기화 = 변수 선언

 

(참고로 C언어의 모든 변수타입들은 변경불가능(immutable)하다.)

 

자료형은 값에 따라서 정수형(int), 실수형(float, double), 문자형(char)이 존재한다.

 

아래는 변수 선언의 예시이다.

 

int age = 20;

변수인 age와 20 사이에 등호(=)가 있는데, 파이썬과 마찬가지로 대입 연산자로 사용된다.

변수에 20라는 값을 저장(할당)한다는 의미이다. ( 같다는 표시는 ==로 )

 

변수명 작성 규칙

1. 알파벳, 숫자, 언더바(_)를 사용한다. 이때 알파벳은 대소문자를 구분한다. (파이썬과 동일하다.)

2. 역시 파이썬과 마찬가지로 예약어(키워드)는 사용할 수가 없다.

3. 첫 글자는 숫자로 시작할수 없으며, 이름에 공백은 포함할 수 없다. (파이썬과 동일)

 

 

변수 사용하기

# include <stdio.h>

int main(void){
    int age = 20;
    printf("%d\n", age);
    return 0;
    }

출력 결과

printf() 안에 %d는 decimal을 의미하며, 정수형의 값을 출력하라는 의미이다.

 

자료형 서식 지정자 설명
Int %d 값이 정수일 때
Float %.nf 값이 실수일 때, n은 출력할 소수점 이하 자릿수, n+1에서 반올림
Double %.nlf 값이 실수일 때, n은 출력할 소수점 이하 자릿수, n+1에서 반올림
char %c (character) 값이 문자일때
%s (string) 값이 문자열일때,

위의 Double과 Float의 차이?

Float는 소숫점 이하 6자리, Double으 소숫점 이하 15자리 ( 즉, 정밀도의 차이)

 

계속 작성중...

반응형