대입 연산자의 왼편에 있는 자료형에 따라 상수의 자료형이 결정되는 것은 아니다.
다만, 대입 연산자의 오른편에 선언된 상수의 자료형에 어울리게 변수의 자료형을 선언했을 뿐이다.
char ch = 'A';
위와 같이 선언한다면 char형으로 표현된다고 생각할 것이다.
하지만 위의 문장은 컴파일러에 의해 다음과 같이 변한다.
char ch = 65;
65는 정수이므로 4바이트 크기의 int형으로 표현되어야 한다.
------------------------------------------------------------------------------
#include<stdio.h>
int main(void) {
char ch = 'A';
printf("literal int size: %d \n", sizeof(7));
printf("literal double size: %d \n", sizeof(7.14));
printf("sizeof(ch): %d \n", sizeof(ch));
printf("sizeof('ch'): %d \n", sizeof('ch'));
/* printf("sizeof(퍼센트s): %s", ch); */ 왜인지는 몰라도 안 됨. 난리 남.
/* printf("sizeof(퍼센트c): %c", ch); */
return 0;
}
출력값
literal int size: 4
literal double size: 8
sizeof(ch): 1
sizeof('ch'): 4
'c&c++' 카테고리의 다른 글
printf함수: 서식 문자를 정돈 및 정렬하여 출력하기 (0) | 2021.09.14 |
---|---|
자료형의 변환 (0) | 2021.09.14 |
정수형 데이터를 n비트 오른쪽으로 shift (0) | 2021.09.14 |
16진수 입력을 10진수로 출력하는 코드 작성 (0) | 2021.09.14 |
2진수 출력 코드 실습 (0) | 2021.09.14 |