본문으로 바로가기

[C언어] 데이터형 (정리2)

category C언어 2018. 2. 6. 15:55

C언어의 5대 상수


  1. 숫자상수 :  정수형 상수, 실수형 상수가 있다. 
  2. 문자상수 : 단일인용부호(' ')를 이용해 표현하며, 메모리에 한 Byte 크기로 할당된다.
  3. 문자열상수 : 이중인용부호(" ")를 이용해서 표현하며, 문자열의 끝표시인 '\0'(NULL 문자)로 종료하는 데이터
  4. 심볼릭 상수 : 매크로 상수, 열거형 상수
    • 장점 : ① 유지, 보수가 편하다. ② 처리속도가 빠르다.(상수가 변수보다 빠르다.) ③ 코드를 이해하기 쉽다.
  5. 주소상수 : 변수의 시작주소, 배열의 시작주소, 배열원소의 시작주소, 함수의 시작주소
▷ 문자열은 곧 그 시작 주소 상수이다.


기본 데이터형의 범위

 구분

기본 데이터형 

범위 

Byte 

 문자형

 char

 unsigned char

  -128 ~ 127 (-27  ~ 2+ 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 -> ...이기 때문에

데이터형의 이해

  1. 문자형 : 문자상수는 그 문자에 대한 ASCII code 값으로 저장된다. 
    • '0' = 48, 'A' = 65, 'a' = 97
  2. 문자열형
    • 문자열은 문자형 자료의 집합으로 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

댓글을 달아 주세요