C언어의 5대 상수
- 숫자상수 : 정수형 상수, 실수형 상수가 있다.
- 문자상수 : 단일인용부호(' ')를 이용해 표현하며, 메모리에 한 Byte 크기로 할당된다.
- 문자열상수 : 이중인용부호(" ")를 이용해서 표현하며, 문자열의 끝표시인 '\0'(NULL 문자)로 종료하는 데이터
- 심볼릭 상수 : 매크로 상수, 열거형 상수
- 장점 : ① 유지, 보수가 편하다. ② 처리속도가 빠르다.(상수가 변수보다 빠르다.) ③ 코드를 이해하기 쉽다.
- 주소상수 : 변수의 시작주소, 배열의 시작주소, 배열원소의 시작주소, 함수의 시작주소
▷ 문자열은 곧 그 시작 주소 상수이다.
기본 데이터형의 범위
구분 |
기본 데이터형 |
범위 |
Byte |
문자형 |
char unsigned char |
-128 ~ 127 (-27 ~ 27 + 1) 0 ~ 255 |
1 |
수치형 |
int unsigned int |
-231 ~ 231 - 1 0 ~ 232 - 1 |
4 |
short unsigned short |
-215 ~ 215 - 1 0 ~ 216 - 1 |
2 |
|
long unsigned long |
-231 ~ 231 - 1 0 ~ 232 - 1 |
4 |
|
실수형 | float |
±3.4 * 10-38 ~ ±3.4 * 1038 |
4 |
double | ±1.7 * 10-308 ~ ±1.7 * 10308 | 8 |
▷ 실수형과 정수형은 저장방식이 다르기 때문에 같은 byte 수라도 '범위'가 다르다. (float와 int의 경우)
▷ long형은 int형보다 같거나 크다. (운영체제마다 할당되는 Byte수가 다르다)
▷ signed와 unsigned의 차이점은 Sign bit의 유무이다. (Sign bit 0이면 양수, 1이면 음수를 나타낸다.)
- 6 line : (최댓값 + 1) 해주면서 215 자리에 있는 Sign bit가 1로 바뀌면서 최솟값으로 출력된다.
- 결과 : -32768
- 결과 : 무한루프
- 이유 : i = 0 -> 1 -> .... -> 127 -> -128 -> -127 -> ...이기 때문에
데이터형의 이해
- 문자형 : 문자상수는 그 문자에 대한 ASCII code 값으로 저장된다.
- '0' = 48, 'A' = 65, 'a' = 97
- 문자열형
- 문자열은 문자형 자료의 집합으로 char형 1차원 배열로 표현된다.
형변환의 이해
- 자동형변환 : 이항연산 시 두 피연산자의 type이 다른 경우 type을 맞추기 위해 자동으로 일어나는 형변환
▷ 자동형변환은 0차원의 기본 데이터형에서만 발생
예를 들어 float* > int*를 비교할 때 주소는 1차원 이상이므로 0차원에서 일어나는 자동형변환이 일어나지 않고 Error 발생
- 강제형변환 : 프로그래밍 시에 cast연산자를 이용하여 실시하는 형변환
'C언어' 카테고리의 다른 글
[C언어] 구조체 (정리5) (0) | 2018.02.09 |
---|---|
[C언어] 포인터 (정리4) (0) | 2018.02.07 |
[C언어] 배열 (정리3) (0) | 2018.02.06 |
[C언어] 데이터형 (정리2) (0) | 2018.02.06 |
[C언어] Preview (정리1) (0) | 2018.02.02 |