1. C 프로그램 구조 이해
가. 프로그램 작성 방법
나. 프로그램 기본 구조
1) C언어
함수 기반 언어
하나 이상의 함수로 구성됨.
main() 함수는 반드시 필요(프로그램의 시작)
2) 함수
특정한 작업을 수행하도록 한 개 이상의 문장으로 구성된 독립된 코드
3) C 프로그램의 기본 구조
/* 기본 구조 */
#include <stdio.h>
int main(void) {
printf("Hello World!");
return 0;
}
4) 주석(Comment)
/* 기본 구조 */
프로그램을 설명하는 문장
프로그램의 실행에는 영향을 끼치지 않음
컴퓨터를 위한 것이 아니고 프로그램을 하는 사람을 위한 것
프로그램의 가독성을 높임
아무리 많아도 실행프로그램의 크기가 커지지 않음
일반적으로 많을수록 좋음
5) 전처리기 지시어
#include <stdio.h>
헤더파일 stdio.h를 소스프로그램의 #include 위치에 포함시키라는 의미의 문장
헤더파일: 코드의 일부분이 들어있는 텍스트 파일
stdio.h: 표준 입출력에 대한 라이브러리 함수들의 정의 포함
6) main 함수
프로그램의 시작/종료 위치를 의미하는 특별한 함수
C 프로그램은 반드시 한 개의 main() 함수를 포함해야 함.
C 프로그램은 반드시 한 개의 main() 함수만 포함해야 함.
C 언어 표준: main() 함수의 마지막에 정수 반환 규정(0이면 정상, 아니면 비정상 종료)
7) 문장(Statement)
프로그램을 이루는 가장 기본적인 단위
문장 < 함수 < 프로그램
문장의 끝은 항상 세미콜론(;)으로 끝나야 됨.
8) 들여쓰기(Indentation)
소스코드의 가독성을 높임
같은 수준에 있는 문장들을 왼쪽 끝에서 몇 자 안으로 들여쓰는 것
반드시 하여야 함.(권장)
다. 프로그램 작성 규칙
모든 문장은 세미콜론(;)으로 끝남.
가능하면 한 줄에 한 개의 문장만 사용함.
int a; a = 10; // X
int a;
a = 10; // O
블록은 중괄호({})를 사용해서 구분함.
빈칸과 공백줄을 적절히 사용(가독성)
블록에 있는 문장들은 들여쓰기함.
2. 주석, 전처리기, 함수 이해
가. 주석
/* 와 */ 로 묶여진 부분(여러 줄)
한 줄로 된 주석은 // 을 사용
프로그램을 설명하는 설명글
프로그램의 실행에는 영향을 끼치지 않음
컴파일러는 주석을 무시함.
아무리 많아도 실행프로그램의 크기가 커지지 않음.
프로그램의 가독성을 높임.
일반적으로 많을수록 좋음.
나. 전처리기
컴파일러가 번역하기 전에 처리함.
소스코드를 전처리기가 처리한 다음에 그 결과를 컴파일러가 번역함.
주로 헤더 파일을 추가하거나 매크로 상수나 매크로 함수를 사용할 때
1) 전처리기 지시자
전처리기가 할 일을 가르쳐주는 문장
C언어의 첫 번째 열에서 선언함.
세미콜론(;)으로 끝나지 않음.
#으로 시작하는 행(예, #include, #define, #if, #error)
2) #include 전치리기 지시자
라이브러리를 프로그램에서 사용하고 싶을 때
헤더파일을 소스 코드의 #include 위치에 포함시키라는 의미
3) 헤더 파일
코드의 일부분이 들어있는 텍스트 파일
컴파일러가 필요로 하는 정보를 가지고 있음.
.h의 확장자를 가짐
4) stdio.h
standard input output의 약자
표준 입출력에 대한 라이브러리 함수들의 정의 포함
printf() 함수에 대한 정의
5) 표준 입출력
키보드로부터의 입력 / 모니터로의 출력
다. 함수(Function)
1) 함수의 개요
입력(argument) -> 출력(return value) 만들어내는 코드
특정 기능을 수행하는 문장들의 모임
특정한 작업을 수행하기 위하여 작성된 독립적인 코드
프로그램을 구성하는 기본적인 단위(부품)
프로그램 = 함수의 집합
main()은 가장 먼저 수행되는 함수
사용자 정의 함수와 라이브러리 함수가 있음.
헤더와 몸체로 구성됨.
함수 호출(call) = 함수 사용
2) return 문장
함수가 종료되면서 값을 반환하는 키워드
3. 변수, 수식, 연산 이해
가. 변수
1) 변수와 상수
상수는 그 값이 프로그램이 실행되는 동안 변하지 않는 수
변수는 프로그램이 사용하는 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간
2) 변수 선언
컴파일러에게 어떤 타입의 변수가 사용되는지를 미리 알리는 것
형식: 자료형 변수명;
3) 자료형(Data type)
변수가 저장할 데이터가 어떤 타입인지를 정하는 것
정수형(short, int, long)
실수형(double, float)
문자형(char)
4) 변수 선언 및 값 대입
char ch; // 문자형 변수 선언
int iData; // 정수형 변수 선언
double dData; // 실수형 변수 선언
ch = 'a' // 변수 ch에 문자 "a"를 대입
iData = 60; // 변수 iData에 60을 대입
dData = 4.9; // 변수 dData에 4.9를 대입
5) 변수 초기화(선언과 동시에 대입)
char ch = 'a';
int iData = 60;
double dData = 4.9;
6) 변수 사용
int iData1 = 10;
int iData2;
iData2 = iData1; // 변수 사용
나. 수식(Expression)
상수, 변수, 연산자의 조합
연산자와 피연산자로 구성된 식
다. 연산
1) 대입 연산(=, assignment operation)
iData = 100;
변수에 값을 저장하는 연산
대입 연산 = 배정 연산 = 할당 연산
2) 산술 연산(+, -, *, /, %)
덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/) 나머지(%)