본문 바로가기
c

c언어1강 c언어란? (윤성우 열혈c)

by 킹차니 2021. 2. 19.

 

c언어는 프로그래밍 언어이다.

 

1.프로그래밍 언어란?

   사람과 컴퓨터가 이해할 수 있는 약속된 형태의 언어 ex)c, c++ , java, pyhon

2.컴파일러의 역할은?

   프로그래밍 언어로 작성한 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역하는 역할을 한다. 이렇게 번역하는     것을 컴파일(compile)이라한다.

 

c언어의 장점

 

1. 절차지향적 언어이다. 즉 정해진 순서의 실행흐름을 중시한다.

2. c언어로 작성된 프로그램은 이식성이 좋다.

3. c언어로 작성된 프로그램은 성능이 좋다. 사용하는 메모리의 양이 상대적으로 적고, 속도를 저하시키는 요소들이 최소화 되어있기 때문.

 

 

c언어는 함수로 시작해서 함수로 끝난다.

 

c언어로 프로그램을 작성한다는 것은 '함수를 만들고, 만든 함수들의 실행순서를 결정하는 것이다.'

정해진 순서에 의해서 진행되는 함수의 호출이 바로 프로그램의 흐름이 된다.

1.함수의 정의

2.함수의 호출

3,인자의 전달

 

제일 먼저 main이라는 이름의 함수가 호출된다.

예시: 

출력형태   함수이름  입력형태

   int           main       (void)  --> 출력의 형태(반환형returning type)가 int이고 입력의 형태가 void인 main이라는 함수.

또한 몸체를 가지고 있는데,

int main (void){

     (함수의 몸체)

     printf("HELLO");

     return 0;

}                                   이런 식이다.

 

위의 예시에서 처럼 조건문, 반복문같은 컨트롤 문장을 제외하고 문장이 끝나면 ;을 붙인다.

printf("HELLO"); 는 "HELLO"를 인자로 전달하면서 printf라는 이름의 함수를 호출하는 문장.

 

표준 라이브러리와 prinf함수

 

이러한 printf같은 함수는 직접 만들지 않아도 기본적으로 제공되는 함수이다. 이러한 함수를 표준함수 ​라고 하며 표준 함수들의 모임을 가리켜 표준라이브러리 라고 한다.

 

헤더파일 선언의 필요성

 

printf와 같은 표준함수의 호출을 위해서는 printf함수와 관련 있는 '헤더파일 선언'이라는 것을 해줘야한다.

#include <stdio.h> 이는 확장자가 .h로 끝나는 헤더파일을 포함하라는 의미의 선언이다.

 

"헤더파일 stdio.h에는 printf 함수의 호출에 필요한 정보가 존재한다. 따라서 이 파일의 정보를 포함하는 헤더파일 선언문이 삽입되어야한다."

 

1.printf 함수의 호출을 위해서는 stdio.h를 대상으로 헤더파일을 선언해야한다.

2.헤더파일의 선언은 소스파일의 맨 앞부분, 즉 main함수의 정의 이전에 와야한다.

 

return문

 

return 문은 두 가지 의미를 지닌다.

 1. 함수를 호출한 영역으로 값을 전달(반환)

 2. 현재 실행중인 함수를 종료.

* 보통 0을 전달한다는 것은 정상적인 상황에서 전달하는 값이다. 반면 비정상적인 상황으로 인해 종료될 때는 일반적으로 0이아닌 값이 전달된다.

 

printf함수의 기본적인 이해

 

#include <stdio.h>

 

int main(void) {

    // insert code here...

    printf("이찬영\n");

    printf("%d살",20);

    printf("%d %d\n",10,20);

    return 0;

}

 

printf함수는 기본적으로 함수의 첫번째 인자를 함수로 전달한다.

2번째 프린트문에 %d가 있는데 이를 서식문자라고 한다.  이는 출력의 형태를 지정하는 역할을 한다.

printf(1번째 인자, 2번째 인자) 중 2번째 인자가 출력의 대상이 된다.

%d는 10진수 정수형태의 출력을 의미한다.

 

서식문자 예시:

#include <stdio.h>

 

int main(void) {

    // insert code here...

    printf("%dx%d=%d\n",4,5,20);

    printf("%dx%d=%d\n",3,4,12);

    return 0;

}