C언어 프로그래밍 기초 정리 1
컴퓨터 기초 공부를 하며 알게된 용어를 정리해 보았다.
컴파일 과정
전처리: 전처리 지시자(#include 등)에 따라 소스 파일을 가공하는 과정.
컴파일: (전처리된)소스 코드를 컴퓨터가 이해하는 기계어로 만드는 과정. 이 때에 소스 파일은 개체 파일이 됨.
개체 파일: CPU가 해석할 수 있는 명령어 들로 이루어진 기계어 파일.
컴파일러: 컴파일을 해주는 프로그램(Visual Studio 등).
링크: 개체 파일에 startup code를 결합하는 과정. main 함수를 호출하여 코드가 실행되도록 함. 개체 파일이 실행 파일이 됨.
#include <stdio.h>
: stdio.h 파일의 내용을 프로그램 안에 복사한다. stdio.h: standard input output(표준입출력)을 의미하며, C언어에서 기본으로 사용하는 입출력 함수(printf 등)가 들어 있음.
제어 문자: 문자는 아니지만, 출력 방식에 영향을 주는 문자. 백슬래시(“")와 함께 사용함.
\n : 다음 줄로 이동
\t : tab, 출력 위치를 다음 탭 위치로 이동
\b : backspace, 출력 위치를 한 칸 왼쪽으로 이동
\r : carriage return, 출력 위치를 맨 앞으로 이동
\a : alert, 알럿 경보
진법 표현
10진수: 12
8진수 : 014(숫자 앞에 0을 붙임)
16진수: 0xc(숫자 앞에 0x를 붙임)
문자와 문자열 상수 표현법
문자 상수 : 작은따옴표(‘‘)사용, %c
문자열 상수: 큰따옴표(““)사용, %s
음수의 변환: 절댓값을 2의 보수로 바꾸어 처리(변환 과정 없이 바로 양수와 음수를 더할 수 있음)
- 절댓값 변환
- 2진수로 변환
- 0과 1을 바꿈(1의 보수)
- 1을 더함(2의 보수)
int a;
- int는 자료형, a는 변수명
-
정수를 저장할 공간을 a라 이름 붙여 메모리에 4바이트 할당하겠다고 컴파일러에 알려줌.
저장 공간 안에는 초기화를 하지 않으면 쓰레기 값(garbage value)이 들어 있음.
초기화 방법: 대입 연산자(=)를 이용
a = 10;
변수는 대입 연산자 왼쪽에서는 저장 공간(l-value(left value)), 오른쪽에서는 값(r-value(right value))이 됨.
const int a = 10;
a = 20; /*오류*/
const를 사용하면 값을 바꿀 수 없음
정수 자료형
char : 1바이트 정수(아스키 코드 값), %c(문자), %d(숫자)
short: 2바이트 정수, %hd
int : 4바이트 정수, %d
long : 8바이트 정수, %ld
long long : 8바이트 이상 정수(컴파일러 마다 다름), %lld
unsigned 정수 자료형: 양수 전용으로 쓰고 싶을 때 사용, %u
실수 자료형
float : 4바이트 실수, %f , 유효숫자 7자리
double: 8바이트 실수, %lf, 유효숫자 15자리
long double: 8바이트 이상 실수, %Lf
문자열 저장
char 배열명[문자열길이+1] = 문자열;
문자열 배열의 마지막은 \0(null character)이 자동으로 추가됨
char fruit[20] = "strawberry";
strcpy(fruit, "banana");
fruit에 strawberry를 저장한 뒤 strcpy함수를 통해 fruit에 strawberry대신 banana를 저장
예약어와 식별자
예약어: 컴파일러와 사용 방법이 약속된 단어(자료형 이름과 같은 것들(int, double 등))
식별자: 필요에 따라 만들어 사용하는 단어(변수명 등)
식별자 규칙
- 알파벳, 숫자, _(밑줄)로 만든다.
- 숫자로 시작할 수 없다.
- 대문자와 소문자는 서로 다른 식별자로 인식한다.
- 예약어는 식별자로 사용할 수 없다.
데이터 입력
int a;
scanf("%d", &a);
- scanf 함수에서 변수명을 지정할 때는 &을 붙인다.
- scanf 함수에서 사용한 변환 문자와 맞는 형태의 데이터를 입력해야 한다.