728x90
728x90
SMALL
chapter2. 변수와 기본 자료형
character
- char는 정수이기도 하다. ASCII에 대응되어 저장되기 때문에.
ο char나 bool이나 내부적으로는 정수 Integer로 저장되고 보여질땐 변환
char c = 65; // c를 출력하면 'A'출력
bool b = true; // b를 출력하면 '1' 출력
- char : 최소 1byte 크기의 문자.
- char16_t : char보다 작지 않은 최소 2byte 크기의 문자. ex) 한글
- char32_t : char보다 작지 않은 최소 4byte 크기의 문자.
- wchar_t : 표현할 수 있는 최대 크기의 문자세트. 주로 유니코드 문자에 사용된다.
signed integer
- 음수, 0, 양수.
- unsigned integer와 저장되는 방식이 다르다.
- signed char : char와 같은 사이즈인 최소 1byte 크기의 정수.
- $($signed$)$ int : short 보다 작지 않은 최소 2byte 크기의 정수.
ο 대부분 4byte - $($signed$)$ long $($int$)$ : int보다 작지 않은 최소 4byte 크기의 정수.
- $($signed) long long $($int$)$ : long 보다 작지 않은 최소 8byte 크기의 정수.
ο C99, C++11 부터 지원
unsigned integer
- 0, 양수.
- signed integer와 저장되는 방식이 다르다.
- unsigned char : char와 같은 사이즈인 최소 1byte 크기의 정수.
- unsigned int : short 보다 작지 않은 최소 2byte 크기의 정수.
ο 대부분 4byte - unsigned long $($int$)$ : int보다 작지 않은 최소 4byte 크기의 정수.
- unsigned long long $($int$)$ : long 보다 작지 않은 최소 8byte 크기의 정수.
floating-point
- 실수
- 각각 숫자를 저장되는 방식이 다르다
- float : 4byte
ο 1.0 f - double : float보다 정확도가 높다. 8byte
ο f 안붙이면 double
■ float f = 3.14 ;
■ 이건 오류다. double형을 더 작은 사이즈인 float에 구겨넣으려고 하는거라서.
■ C에선 오류인데 C++에선 오류 아님. 걍 형변환 해줌. - long double : double보다 정확도가 높다.
auto
- 컴파일러가 타입을 알아서 정해준다.
auto f = 3.14f
// f는 float로 컴파일 해줌
C++에서 변수를 초기화 하는 방법
- int a = 123P
● 가장 보편적 - int a$($123$)$
● C++언어
● 덜 엄격하다. 형변환을 해준다.
ο int a$($3.14$)$
■ int 에 double을 넣은 꼴
■ .14 버리고 3 으로 int 형변환 해준다 - int a{123}
● C++언어
● 더 엄격하다. 형변환을 해주지 않는다.
ο int a{3.14}
■ intdp double을 넣는 꼴
■ 강제 캐스팅 안해준다.
■ 에러
cf)
int k, l, m = 2; // k, l은 2로 초기화 되지 않는다. m만 2로 초기화됨
// 보는 사람 입장에서 착각할 수 있으니 다음과 같이 해주어야 한다.
//초기화 안하는건 뒤에 or 따로따로
int m = 2, k, l;
int k, l;
int m = 2;
728x90
300x250
LIST
'C │ C++ │ C# > C++' 카테고리의 다른 글
C++ Chapter 2.3 : void (0) | 2023.08.14 |
---|---|
C++ Chapter 2.2 : 정수형((Integer)), 고정 너비 정수 (0) | 2023.08.13 |
C++ Chapter 1.5 : 네임스페이스, 전처리기 (0) | 2023.08.12 |
C++ Chapter 1.4 : 컴파일, 헤더 파일 만들기, 헤더 가드가 필요한 이유 (0) | 2023.08.12 |
C++ Chapter 1.3 : 연산자, 기본적인 서식 맞추기, 선언과 정의의 분리 (0) | 2023.08.11 |