달나라 노트

C++ : 변수와 자료형 (variable and data type) 본문

C++

C++ : 변수와 자료형 (variable and data type)

CosmosProject 2022. 3. 23. 00:34
728x90
반응형

 

 

 

C++에서의 자료형은 다음과 같습니다.

(더 많은 자료형이 있지만 대표적으로 몇가지만 간단하게 다뤄봅시다.)

 

분류 영어 이름 내용
논리형 bool true / false
문자형 char 길이 1인 문자
(영어, 한글 등의 문자 또는 숫자)
string 길이가 1 이상인 문자
(영어, 한글 등의 문자 또는 숫자)
숫자 short int 정수
int 정수
long int 긴 정수
float 실수(소수점)
double 실수(소수점)
long double 실수(소수점)

 

 

int number;
double test_number;
char test_text;

C++에서의 변수 선언은 위처럼 자료형을 먼저 쓰고 변수 이름을 쓰면 됩니다.

즉, 변수를 선언할 때에는 선언한 변수에 들어갈 자료형을 명시해줘야 합니다.

 

 

 

int test_number;

test_number = 10;

변수에 값을 할당하기 위해선 = 기호를 이용합니다.

 

 

 

int test_int = 5;

위처럼 변수를 선언하자마자 변수에 값을 할당할 수 있습니다.

 

 

 

 

char test = 'A';
string test_string = "Apple Banana Test string";

문자 선언은 위처럼 할 수 있습니다.

 

주의점은 다음과 같습니다.

1. char 타입은 문자의 길이가 1개인 문자만 할당할 수 있다.

2. string 타입은 문자의 길이가 1개 이상인 문자를 할당할 수 있다.

3. char 타입은 따옴표(')로 문자를 감싸서 할당해야 한다.

4. string 타입은 쌍따옴표(")로 문자를 감싸서 할당해야 한다.

 

 

 

 

 

#include <iostream>
using namespace std;

int main() {
    int test_number;
    test_number = 10;
    cout << test_number << '\n';

    char test_char;
    test_char = 'A';
    cout << test_char << '\n';

    int test_int = 5;
    cout << test_int << '\n';

    return 0;
}


-- Result
10
A
5

변수를 할당하고 출력한 예시입니다.

 

 

 

 

 

 

#include <iostream>
using namespace std;

int main() {
    int test_int = 5;

    test_int = 7;
    cout << test_int << '\n';

    return 0;
}


-- Result
7

변수를 5로 할당한 후 7로 재할당하면 가장 마지막에 할당된 7로 덮어씌워집니다.

 

 

 

#include <iostream>
using namespace std;

int main() {
    int test_value_1 = 1.876;
    double test_value_2 = 1.876;

    cout << test_value_1 << '\n';
    cout << test_value_2 << '\n';

    return 0;
}


-- Result
1
1.876

int 타입을 가진 test_value_1에서처럼 int타입을 가진 변수에 1.876이라는 소수를 할당하면 정수 부분만 할당됩니다.

당연히 데이터 형식이 정수(int)이기 때문이죠.

 

 

 

 

#include <iostream>
using namespace std;

int main() {
    int test_int = 10;
    double test_double = 8.935;

    test_double = test_int;
    cout << "int를 double에 할당 = " << test_double << '\n';

    return 0;
}


-- Result
int를 double에 할당 = 10

위 예시는 int타입의 10을 double 타입의 변수에 할당한 결과입니다.

double 타입은 int타입보다 더 큰 범위의 숫자를 가질 수 있으므로 10이라는 숫자가 그대로 출력됩니다.

 

 

#include <iostream>
using namespace std;

int main() {
    int test_int = 10;
    double test_double = 8.935;

    test_int = test_double;
    cout << "double을 int에 할당 = " << test_int << '\n';

    return 0;
}


-- Result
double을 int에 할당 = 8

double 타입의 8.935를 int 타입의 변수에 할당한 결과입니다.

int타입은 소수점 데이터를 가질 수 없습니다. 따라서 소수점은 모두 삭제한 뒤 정수 부분만 남겨두게 되고 결국 8.935에서 정수 부분인 8만 출력됩니다.

 

 

 

 

 

 

 

 

 

#include <iostream>
using namespace std;

int main() {
    int test_int = 10;
    double test_double = 8.935;

    test_double = (double)test_int;
    cout << "int를 double에 할당 = " << test_double << '\n';

    return 0;
}


-- Result
int를 double에 할당 = 10

 

#include <iostream>
using namespace std;

int main() {
    int test_int = 10;
    double test_double = 8.935;

    test_int = (int)test_double;
    cout << "double을 int에 할당 = " << test_int << '\n';

    return 0;
}


-- Result
double을 int에 할당 = 8

위 예시는 cast (자료형 변환 기능)를 사용한 예시입니다.

 

(변환할 자료형)데이터

위처럼 사용할 수 있으며 데이터를 괄호 안에 적힌 자료형으로 변환한 후 다른 변수에 할당합니다.

 

test_int = (int)test_double;

따라서 위 식은 test_double에 저장된 데이터를 정수(int)형태로 바꾼 후 test_int 변수에 할당한다는 의미입니다.

 

사실 (int)를 적건 안적건 자동 형번환이 되어서 결과에 차이는 없습니다.

다만 (int)를 적어줌으로써 정수로 바꾼다는 것을 코드에 명시할 수 있죠.

 

 

 

 

 

#include <iostream>
using namespace std;

int main() {
    int test_int = 3;
    double test_double = 8.935;

    double result;
    result = test_int * test_double;

    cout << result;

    return 0;
}


-- Result
26.805

위처럼 double과 int를 연산하면 둘 중 더 큰 자료형의 결과가 return됩니다.

 

 

 

#include <iostream>
using namespace std;

int main() {
    int test_1 = 3;
    int test_2 = 2;

    double result;
    result = test_1 / test_2;

    cout << result;

    return 0;
}


-- Result
1

위 결과는 3 / 2를 실행한 결과인데 3과 2가 모두 int형태라서 1.5가 아닌 1로 출력됩니다.

 

이런 경우에 cast를 사용할 수 있습니다.

 

다음 예시를 봅시다.

 

 

#include <iostream>
using namespace std;

int main() {
    int test_1 = 3;
    int test_2 = 2;

    double result;
    result = (double)test_1 / (double)test_2;

    cout << result;

    return 0;
}


-- Result
1.5

double로 자료형을 바꿔준 후 나누기를 하게 되면 그 결과도 double로 나타나게 됩니다.

 

 

 

 

 

 

728x90
반응형
Comments