C++ 문법(자료형) - 1. 기본 자료형

Ui Jin·2021년 9월 13일
0

C++ Grammar

목록 보기
2/13

프로그램을 만든다는것은 어떤 값을 가공해서 어떤 결과를 만든다는 것이다. 우선 여기서 어떤 값을 만드는 방법을 알아보자.

변수


변수란?

지정된 공간에 이름을 부여하고 그 공간의 데이터를 다룰수 있도록 돕는 것


원리

데이터를 다루기 위해서는 메모리에 사용 목적에 따라 원하는 만큼의 공간을 생성해야 합니다. 이때, 사용 목적에 따른 메모리 공간을 C++에서는 자료형으로 미리 예약어로 정해 놓았습니다. 이에 자료형을 이야기해줌에 따라 컴퓨터는 정해진 메모리를 생성해 주게 됩니다.


정의와 선언

앞으로 사용할 단어입니다. 정의란? 우리의 목적에 맞게 그 내용을 정의하는 것을 의미하고, 선언이란 우리가 사용하기 위해 실제로 컴퓨터의 메모리에 사용할 공간을 생성하는 것을 의미합니다.

1) 정의

C++에서 미리 정해놓은 문법이기 때문에 따로 정의의 과정이 필요하지 않습니다.

2) 선언

2-1) 선언(생성)

int a;	//a라는 이름을 가진 변수 생성
double b;	//b라는 이름을 가진 변수 생성
  • 일단 변수가 선언되면 메모리에서 사용할 공간이 정해지는데 이 공간에는 전에 사용하던 값이 남아있습니다. 이 값을 "쓰레기 값"이라고 부릅니다.
  • 일단 변수를 선언만 할 경우 그 변수에는 쓰레기값이 존재하게 되므로 사용할 때 조심합시다.

(int자료형은 정수를 저장할 목적인 자료형으로 4byte,
double자료형은 실수를 저장할 목적인 자료형으로 8byte의 크기를 갖습니다.)

2-2) 접근

a;
b;

해당 변수의 이름을 입력하면 그 변수에 접근이 가능합니다.

2-3) 저장

a = 1;
b = 2.0;
  • 해당 변수에 대입연산자(=)를 통해 값을 저장하는 것이 가능합니다.
  • 저장하는 값은 자료형에 맞는 값을 넣어 주어야 합니다.

2-4) 초기화

int a = 1
double b = 2.0
  • 선언하는 동시에 그 값을 지정하여 저장하는것을 "초기화"라고 합니다.
  • 마찬가지로 자료형에 맞는 값을 넣어주도록 합시다.

주의점

1) 값을 저장하는 것은 "변수"에만 가능합니다. 즉, 100과 같은 상수에는 어떤 값을 저장하는것이 불가능 합니다. (100 = 2는 불가능)

  • 당연한 소리를 왜 하는지 이해가 안되실 수 있지만 const 키워드를 통해 변수를 상수처럼 만드는 것이 가능하기 때문에 주의하셔야 합니다.
    const int a = 1; // 이 경우 a는 변수가 아니라 상수로 변한다.

2) 위의 경우처럼 const키워드를 통해 변수를 상수로 만드려고 한다면, 반드시 초기화방법을 통해 선언해야 합니다.

  • 선언을 하고 그다음 저장하는 방법은 불가능합니다.
    const int a;
     a = 3;		// 상수에는 변수를 저장하는것이 불가능.

3) 변수의 이름은 예약어가 아니어야 하고, 다음의 규칙을 지켜야 합니다.

  • 예약어: C++에서 이미 쓰임세가 정해진 단어들을 의미합니다. 종류가 많기 때문에 구글링을 통해 알아봅시다.

  • 규칙: 다음의 상황이 아니어야 함
    (이미 같은 이름이 있는 경우, 숫자가 맨 앞에 위치하는 경우, '_'(underscore)를 제외한 특수문자가 들어간 이름)

(당연히 띄어쓰기는 불가능 합니다)



추가내용

자료형


(8bit = 1byte 인거 아시죠?)

1) void

  • 비어있다는 뜻입니다.(없다는 뜻)

2) 문자열

  • 자료형: char

  • 선언: 작은 따옴표로 감싸줘야합니다.
    (큰 따옴표는 배열을 이용해 문자열을 선언할 때 사용합니다)

3) 정수

  • 자료형: int

  • 선언: 사용가능범위에 유의합시다.
    (bool자료형에서 0은 false, 1은 true를 의미합니다.)
    (8진수 표기: 0, 8진수로 표현하고 싶을 때 그 숫자앞에 사용합니다.)
    (16진수 표기: 0x 16진수로 표현하고 싶을 때 그 숫자앞에 사용합니다.)

4) 실수

  • 자료형: float, double

  • 선언: 실수는 선언후 값을 넣으면 "부동소수점"이라는 방법으로 값을 저장합니다. 이 표기법은 수를 가수e지수 이런식으로 표기하는 방법입니다.
    (ex) 0.00123 = 1.23e-3)
    (부동소수점은 소수점이 둥둥 떠다닌다는 의미입니다.)

각 자료형이 차지하는 메모리의 크기를 기억합시다. 후에 내용을 이해하는데 도움이 될거에요.

이 자료형들은 C++언어에서 기본으로 제공되는 자료형들이에요.


형변환

c++에서는 변수에 우리가 설정한 자료형에 맞지 않는 자료를 넣을때, 오류를 발생합니다. 이를 위해서는 해당 변수에 넣기 전에 그 형태를 변경해 주는 작업이 필요합니다.

1) 자동 형변환(문제가 없는 형변환)

c++에서는 편의를 위해, 다음의 경우 자동으로 형변환 되어 변수에 저장되도록 만들어 두었습니다.

1-1) 승격에 의한 자동형 변환

1-2) 대입 연산에 의한 자동 형변환

대입연산에서, 왼쪽과 오른쪽의 자료형이 같아야하기 때문에 다를경우 이를 자동으로 바꿔주는 기능이 있습니다.

  • 정수 -> 실수
double a = 10;		// 대입연산, 자동 형변환

(이 경우 10 -> 10.0)

  • 실수 -> 정수
int a = 10.5;

이 경우 실수형이었던 10.5가 10으로 형변환되어 저장됩니다.
(이때 소수점은 반올림이 아닌 버림입니다.)

  • bool 자료형
bool a = 10;		// true
bool a = 0;		// false

bool 자료형의 경우 0이 아닌수는 true로, 0은 false로 자동으로 바꾸어 저장합니다.

  • 이 외에도 다양한 경우들이 있습니다.

1-3) 피연산자의 불일치에 의한 형변환

연산시에 데이터손실을 최소화 할 수 있도록 형변환이 됩니다. 예를들면, 덧셈시에 int가 double로 바뀌는 경우가 있겠습니다.

2) 강제 형변환(문제가 없는 형변환)

int num = 1;

double a = double( num );
double b = (double)num;

둘 다 int였던 num 변수가 double형으로 바뀐다.

(이때 임시 변수가 수반된다고 한다.
즉,
double (num)부분에서 double형태의 임시 변수가 생성되고
int형태의
num이 이곳으로 저장되며 형변환을 일으킨다고 한다다고 한다.)

  • 변환할 자료형(변수)의 방법: C와 C++두 언어에서 사용 가능한 방법이다
  • (변환할 자료형)변수의 방법: C++에서만 사용 가능한 방법이다.

3) 문제가 되는 형변환

그렇다면 위의 두 경우에 해당되지 않는 경우, 즉 오류를 발생하는 경우에는 어떤것이 있을까요?
(주로 큰 타입에서 작은 타입으로 변환할 때 발생)

double -> float

float -> short int

int -> float

int -> short int


profile
github로 이전 중... (https://uijinee.github.io/)

0개의 댓글