C언어 개요
C언어 특징
•
하드웨어 제어
◦
어셈블리어 수준으로 하드웨어 제어 가능
◦
저급 언어의 특징을 가져 다른 고급 언어보다 배우기는 어려움
•
확장성
◦
ANSI와 ISO에 의한 규격화
◦
CPU나 OS에 관여받지 않는 상태로 프로그램의 컴파일 및 구동 지원
•
빠른 실행 속도
◦
절차지향적 언어로 프로그램 구조가 단순
◦
프로그램 복잡도가 낮아 시스템 프로그래밍에 효율적
•
유연성
◦
공장 자동화, 사무 자동화, GUI, 응용프로그램 등 많은 분야에서 사용 가능
◦
다른 언어에선 허용되지 않는 기능을 대부분 허용
•
표준 라이브러리
◦
표준 라이브러리란 인풋/아웃풋, 문자열처리, 메모리 할당 등 여러가지 유용한 함수들 수백가지를 갖고 있는 저장고
C언어 기본 구조
•
#include
◦
#은 전처리기, 컴파일 하기 이전에 미리 처리되는 문구
◦
컴파일을 하기전에 해당 문구의 우측에 존재하는 것을 추가하라는 의미
•
stdio.h
◦
.h 확장자를 가지는 파일을 헤더파일
▪
C 표준 라이브러리가 제공해주는함수들의 정보가 있는 집합체
◦
표준 입출력 헤더파일 (STanDardInputOutput)
▪
입력과 출력에 관련된 라이브러리 함수들이 포함
•
return 0;
◦
함수가 종료되었을 때 값을 돌려주는 역할
•
세미콜론 (;)
◦
모든 코드의 마지막에 반드시 입력 (마침표 역할)
•
main 함수
◦
C 언어로 만든 프로그램을 실행할 시 가장 먼저 실행되는 함수
◦
프로그램 내에서 1개만 존재
▪
반환 값 타입
•
정수형 (int 형)으로 반환
▪
인자 값 (void는 아무것도 없다는 의미)
•
아래의 값을 인자로 받을 수 있음
◦
인자 개수 (Argc : Argument count)
◦
인자 값 (Argv : Argument value)
◦
환경 변수 값 (Envp : Environment value)
•
주석
◦
내용이 있지만 컴퓨터가 읽지 못하는 영역
•
키워드
◦
컴파일러에 사전 설명이 되어있는 특별한 의미를 갖는 단어
•
식별자
◦
변수, 상수, 함수 등을 식별하기 위한 고유의 이름
◦
식별자 규칙
▪
알바벳(A-Z, a-z) 숫자(0-9), 및 밑줄 (_) 만 사용가능
▪
첫 번째 문자는 숫자로 싲가 불가
▪
대소문자 구별함
▪
공백이나 띄어쓰기 및 특수문자 사용 불가
▪
위 사항을 지키지 않으면 컴파일러가 식별자를 인식 불가
•
변수
◦
숫자, 문자와 같은 값들을 저장하는 공간
◦
데이터 타입, 변수 이름으로 구성
◦
변수 선언
▪
타입 변수이름
int number;
C
복사
▪
변수의 선언과 동시에 초기화
int number = 100;
C
복사
•
상수
◦
프로그램 실행 중에 변경 불가능한 데이터
◦
상수도 데이터타입 사용 가능
◦
상수의 종류
▪
리터럴 상수
•
이름이 정의 되지 않은 상수 (거의 사용되지 않음)
▪
심볼릭 상수
•
이름이 정의 되어 있는 상수
•
const, define 키워드 사용
•
상수 사용 시 초기화가 반드시 필요 (선언 후 변경 불가능하기 때문!)
기본 자료형
자료형
•
기본 타입은 크게 정수형, 실수형, 문자형 타입으로 나뉨
•
부호
◦
signed(부호 있는 변수) - 기본형식, unsigned(부호 없는 변수) 키워드 사용 가능
◦
정수형과 문자형에만 사용가능
◦
운영체제와 컴퓨터의 처리 단위에 따라 자료형의 크기도 달라진다