2018 - 07 - 04 (수)
- 참고 문헌 : C언어의 정석 [남궁성 지음]
C 언어 변수
변수란 자바와 마찬가지로 단 하나의 값을 저장할 수 있는 메모리 공간이라고 한다.
하나의 변수에는 단하나의 값만 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다.
변수의 선언과 초기화
변수 타입 변수 이름;
변수를 선언하면 메모리의 빈공간에 변수타입에 알맞은 크기의 저장공간이 확보된다.
자바는 가비지컬렉터에 의해서 메모리관리가 되지만 c언어의 경우 초기화를 하지 않는 경우 garbage value 가 남게 된다. 효율적인 메모리 관리를 위해 계속 덮어서 사용하는 방법을 활용하면 좋다.
변수의 값 교환
자바와 마찬가지의 방법
int a = 10;
int b = 20;
int tmp;
tmp = a;
a = b;
b = tmp
기본 자료형
기본 자료형은 크게 문자와 숫자로 나뉘며 또한 숫자는 실수형과 정수형으로 나뉜다.
- 문자형 : char [문자를 저장하는데 사용되며 변수당 하나의 문자만 저장]
- 정수형 : short, int, long, long long [정수를 저장하는데 사용되며, 주로 int가 사용된다.]
- 실수형 : float, double, long double [실수를 저장하는데 사용되며, 주로 double이 사용된다.]
문자형 : char
정수형 : short, int, long, long long
- char : 1byte -> 8bit
- short : 2 byte
- int : 4 byte
- long : 4 byte
- long long : 8 byte
n비트로 표현할 수 있는 정수의 개수 : 2의 n승 개
- float : 정밀도[7자리] 4byte
- double : 정밀도[15자리] 8byte
- long double : 정밀도[15자리] 8byte
int score = 100;
print(sizeof(int));
//sizeof(타입) : 타입의 크기를 byte단위 정수로 반환
//sizeof 변수 : 변수의 크기를 byte 단위 정수로 반환
상수와 리터럴
자바에서는 상수를 선언할 때 final 키워드를 붙인다 C언어에서는 const 를 붙여준다. 주의점 : 상수는 선언과 함께 초기화를 해주어야한다.
const int MAX_SPEED = 10;
// 변수 : MAX_SPEED
// 상수 : MAX_SPEED
// 리터럴 : 10
- #define을 이용한 상수정의
#define WIDTH 20 // WIDTH를 20으로 정의
- #include 와 #define 은 ‘#’ 로 시작한다 이부분은 전처리기 지시자라고 한다. 세미콜론을 붙이지 않는다.
- 전처리는 컴파일 전에 프로그램 코드에 가하는 작업이며 이 프로그램을 전처리기라고 한다.
파생형 ( 유도 자료형 )
기본형 외에도 파생형이 있다, 파생형은 기본형으로부터 파생된 것으로 보다 복잡한 형태를 가진다
- 배열 : 같은 타입의 여러 변수를 하나로 묶은 타입
- 구조체 : 다른 타입의 여러 변수를 하나로 묶은 탕비
- 공용체(union) : 다른 타입의 여러 변수가 하나의 저장공간을 공유하는 타입
- 포인터 : 메모리 주소를 저장하기 위한 타입
- 함수 : 함수를 선언하기 위한 타입