사자자리

[C++] 변수(정수, 실수, char, bool) / 상수(const) / auto 본문

C++/C++ 이론

[C++] 변수(정수, 실수, char, bool) / 상수(const) / auto

renne 2022. 7. 13. 21:30

변수

 - 바뀔 수 있는 수

 

변수의 이름

 - 숫자로 시작할 수 없다.

 - C++에서 사용하고 있는 키워드를 사용할 수 없다.

 - white space를 사용할 수 없다.

//잘못된 예
int 7books;	//숫자로 시작할 수 없다.
int return;	//C++에서 사용하고 있는 키워드를 사용할 수 없다.
int get sum;	//white space를 사용할 수 없다.

 

변수의 선언, 대입, 초기화

#include <iostream>
using namespace std;
int main() {
    int a;  //변수의 선언
    a = 10; //대입
    int b = 20; //변수의 선언과 초기화

    cout << a << endl << b << endl;
    return 0;
}

<실행 결과>
10
20

 

정수 자료형

2 바이트 (signed) short (int) -32,768 ~ 32,767
4 바이트 (signed) int -2,147,483,648 ~ 2,147,483,647
(signed) long (int) -2,147,483,648 ~ 2,147,483,647
8 바이트 (signed) long long (int) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

 

2 바이트 unsigned short (int) 0 ~ 65,535
4 바이트 unsigned (int) 0 ~ 4,294,967,295
unsigned long (int) 0 ~ 4,294,967,295
8 바이트 unsigned long long (int) 0 ~ 18,446,744,073,709,551,615
#include <iostream>
#include <climits>
using namespace std;
int main() {
    int test_int = INT_MAX;
    short test_short = SHRT_MAX;
    long test_long = LONG_MAX;
    long long test_llong = LLONG_MAX;

    cout << "short는 " << sizeof test_short << "바이트이다. 최대값은 " << test_short << " 이다." << endl;
    cout << "int는 " << sizeof test_int << "바이트이다. 최대값은 " << test_int << " 이다." << endl;
    cout << "long은 " << sizeof test_long << "바이트이다. 최대값은 " << test_long << " 이다." << endl;
    cout << "long long은 " << sizeof test_llong << "바이트이다. 최대값은 " << test_llong << " 이다." << endl;
    return 0;
}

<실행 결과>
short는 2바이트이다. 최대값은 32767 이다.
int는 4바이트이다. 최대값은 2147483647 이다.
long은 4바이트이다. 최대값은 2147483647 이다.
long long은 8바이트이다. 최대값은 9223372036854775807 이다.

 

실수 자료형

4 바이트 float 1.175494e-38 ~ 3.402823e+38
8 바이트  double  2.225074e-308 ~ 1.797693e+308
#include <iostream>
using namespace std;
int main() {
    float a = 3.14;
    int b = 3.14;

    cout << "float a = " << a << endl;
    cout << "int b = " << b << endl;
    return 0;
}

<실행 결과>
float a = 3.14
int b = 3

 

문자 자료형 char

 - 작은 따옴표(' ')를 사용한다.

 - 한 문자만 받을 수 있다. 1 바이트.

 - 기본값이 정수로 저장된다. ASCII 코드.

 

Letter ASCII Code Binary Letter ASCII Code Binary
a 097 01100001 A 065 01000001
b 098 01100010 B 066 01000010
c 099 01100011 C 067 01000011
d 100 01100100 D 068 01000100
e 101 01100101 E 069 01000101
f 102 01100110 F 070 01000110
g 103 01100111 G 071 01000111
h 104 01101000 H 072 01001000
i 105 01101001 I 073 01001001
j 106 01101010 J 074 01001010
k 107 01101011 K 075 01001011
l 108 01101100 L 076 01001100
m 109 01101101 M 077 01001101
n 110 01101110 N 078 01001110
o 111 01101111 O 079 01001111
p 112 01110000 P 080 01010000
q 113 01110001 Q 081 01010001
r 114 01110010 R 082 01010010
s 115 01110011 S 083 01010011
t 116 01110100 T 084 01010100
u 117 01110101 U 085 01010101
v 118 01110110 V 086 01010110
w 119 01110111 W 087 01010111
x 120 01111000 X 088 01011000
y 121 01111001 Y 089 01011001
z 122 01111010 Z 090 01011010
#include <iostream>
using namespace std;
int main() {
    char a = 77;
    char b = 'M';
    cout << "a = " << a << endl;	//M 출력. ASCII 코드 상에서 77이 M과 대응되기 때문이다.
    cout << "b = " << b << endl;	//M 출력.
    return 0;
}

 

bool 자료형

 - 0: False

 - 1 (0 이외의 모든 수): True

#include <iostream>
using namespace std;
int main() {
    bool a = 0;
    bool b = 1;
    bool c = 100;
    cout << "a = " << a << endl;	//a = 0 출력
    cout << "b = " << b << endl;	//b = 1 출력
    cout << "c = " << c << endl;	//c = 1 출력
    return 0;
}

 

상수 const

 - 바뀌지 않는 수

 - 바뀔 필요가 없는 수

#include <iostream>
using namespace std;
int main() {
    const float pi = 3.14;	//상수 선언 및 초기화
    int r = 3;
    float area = r * r * pi;
    cout << area;	//28.26 출력
    return 0;
}

 

auto

 - 초기화할 때, 자동으로 변수형을 정해준다.

 - 일반적인 코딩 상황에서는 자제한다.

 - 복잡한 변수형을 다룰 때 유용하다.

#include <iostream>
using namespace std;
int main() {
    auto a = 100;       //int
    auto b = 1.1;       //float
    auto c = 1.3e12L;   //long long
    return 0;
}

 

Comments