일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- list
- django
- Excel
- PANDAS
- SQL
- math
- array
- 파이썬
- Python
- numpy
- PostgreSQL
- Java
- Kotlin
- hive
- Google Excel
- Google Spreadsheet
- google apps script
- Redshift
- dataframe
- Tkinter
- gas
- c#
- Mac
- GIT
- PySpark
- matplotlib
- Apache
- string
- Github
- Today
- Total
달나라 노트
C++ : 변수와 자료형 (variable and data type) 본문
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로 나타나게 됩니다.
'C++' 카테고리의 다른 글
C++ : if ~ else if ~ else (조건문), 한줄 if문 (0) | 2022.03.23 |
---|---|
C++ : sizeof (자료형의 크기, 문자의 크기, 숫자의 크기) (0) | 2022.03.23 |
C++ : const (상수값 설정, 재할당 불가능한 변수 선언) (0) | 2022.03.23 |
C++ : cin (사용자 입력 값 받기, user input) (0) | 2022.03.23 |
C++ : cout << (글자 출력하기) (0) | 2022.03.23 |