상세 컨텐츠

본문 제목

[TIL] 2 - 5. 데이터형 - 형변환의 이해

언어/C

by 민:하 2022. 3. 1. 22:24

본문

 

1. 형변환의 종류

① 자동형변환(묵시적 형변환) : 이항연산 시 두 피연산자의 type이 다른 경우 type을 맞추기 위해 변환

                                        연산 시에 존재하지 않는 type을 연산에 적합한 type으로 바꾸기 위해 자동으로 변환

                                        자동형변환은 0차원의 기본 데이터형에서만 발생

② 강제형변환(명시적 형변환) : 프로그래머가 프로그래밍 시 필요에 의해서 cast(형변환)연산자를 이용하는 형변환

 

 

2. 자동형변환의 원칙

  • 작은 형이 큰 형으로 변환 (최대값 크기로 형의 크기 구분 : long long < float)
  • 단, 대입연산자 Rvalue는 Lvalue의 type으로 변환
  • 주소는 자동형변환이 안된다.
  • 연산 시 char과 short는 int형으로 자동형변환한 뒤 계산

 

3. 작은 형 → 큰 형 (절대 byte수로 따지지 않음)

char = unsigned char = short = unsigned short = enum = int(long) → unsigned int (unsigned long) → long long (8byte) → unsigned long long (8byte) → float (4byte) → double (8byte)

 

 

< 대입연산자 = bit copy 명령어>

bit copy할 수 있는 조건

① type 일치

② 차원 일치

 

 

< 이항연산 시 규칙 >

① 좌우측의 피연산자의 type이 일치되어야 연산 가능

② 일치하지 않으면 연산 불가 => 자동 형변환

 

 

< 자동형변환 규칙 >

① 작은 type이 큰 type으로 변환 => 값의 손실이 없도록 하기 위함

② 단, 대입 연산시에는 Rv가 Lv의 type으로 변함

관련글 더보기

댓글 영역