728x90
상수와 변수의 개념
자료형 중 가장 기본이 되는 정수형(소수점이 없는 단순한 수치 자료형)을 기준으로 설명
cout은 다양한 형태의 데이터를 연속적으로 출력
#include <iostream>
using namespace std;
int main()
{
int num;
num=10;
cout << "사과가 " << 10 << "개 있다.\n"; //결과 : 사과가 10개 있다.
cout << "사과가 " << num << "개 있다.\n"; //결과 : 사과가 10개 있다.
}
상수(constant)
- 한번 정해지면 프로그램 실행 중에 그 값을 절대 변경할 수 없는 고유의 값
- 프로그램이 실행되는 동안 변수에 저장
변수
- 프로그램 수행 중에 상수(값)를 저장할 수 있는 기억공간으로 다양한 상수를 저장할 수 있다.
- 변수는 반드시 먼저 선언한 후에 사용
- 자료형 변수명 형태로 기술
- ex) int num;
- 선언된 변수는 메모리 내에 기억공간에 할당
- 기억공간의 크기는 자료형에 의해 결정
- 변수명은 할당된 기억공간의 이름을 결정
변수명
- 변수명은 프로그래머가 붙여준다.
- 식별자 : 변수뿐만 아니라 함수나 클래스에도 이름을 붙여준 것(식별자 ⊃ 변수명)
- 식별자의 규칙
- 영문자(대문자, 소문자), 숫자(0~9), 밑줄문자(_)의 조합으로 만들어진다.
- 첫 글자는 반드시 영문자나 _로 시작해야한다. 숫자로 시작해서는 안 된다.
- 식별자는 철자가 같다고 해도 대소문자를 구분하기 때문에 조심해야 한다.
- C++에 사용되는 예약어는 식별자로 사용할 수 없다.
- 예약어는 c++에서 미리 정의하고 의미를 부여한 단어
- 식별자는 가급적이면 자기 역할에 맞는 이름을 부여
정수형과 실수형

초기화

- 변수를 선언함과 동시에 값을 주는 것을 의미
- 변수를 초기화하지 않고 변수를 선언하는 경우에는 기억 공간이 할당되면서 의도치 않은 쓰레기 값이 저장된다.
정수형
- 저장할 데이터(상수)에 따라 기억공간의 크기를 달리하여 할당하기 위해 정수형은 크게 short, int, long으로 나뉜다.
- 정수형의 기본형은 int이다.
- 만약 short형으로 선언한 변수에 40000을 대입하면 오버플로우(overflow)가 발생하여 엉뚱한 값이 출력된다. 40000을 주고 싶다면 int형으로 선언한 변수에 저장해야 한다.
- 정수형의 종류와 크기
자료형
|
크기
|
저장할 수 있는 값의 범위
|
|
short
|
2byte(16bit)
|
-2^15 ~ 2^15 - 1
|
-32768 ~ 32767
|
unsigned short
|
2byte(16bit)
|
0 ~ 2^16 - 1
|
0 ~ 65535
|
int
|
4byte(32bit)
|
-2^31 ~ 2^31 -1
|
-2147483648 ~ 2147483647
|
unsigned int
|
4byte(32bit)
|
0 ~ 2^32 - 1
|
0 ~ 4294967295
|
long
|
4byte(32bit)
|
-2^31 ~ 2^31 - 1
|
-2147483648 ~ 2147483647
|
unsigned long
|
4byte(32bit)
|
0 ~ 2^32 - 1
|
0 ~ 42949697295
|
※unsigned 와 signed의 차이
- unsigned
- 0과 양수를 표현할 수 있다.
- 가장 왼쪽 bit인 MSB가 + 또는 - 부호를 표현하지 않는다.
- signed
- 양수와 음수를 표현할 수 있다.
- 가장 왼쪽 bit인 MSB가 + 또는 - 부호를 표현한다.
실수형
- 실수형을 저장하기 위한 자료형으로 double, float이 있다.
- 실수형의 기본형은 double이다.
- float은 double에 비해 메모리 낭비를 줄일 순 있지만, float 변수에 저장된 값은 오차가 발생할 수 있음.
- 실수형 변수는 수학 계산이나 과학 기술 계산에 주로 사용된다.
- 실수형의 종류와 크기
자료형
|
크기
|
float
|
4byte
|
double
|
8byte
|
문자형과 논리형
//'G'는 단순히 71이라는 아스키 코드 값을 의미
//"G"는 'G'와 '\0'을 결합한 것
char ch1 = 'G'; //(o)
char ch = "G"; //(x), char ch[2]="G";
//char형 변수를 선언하고 문자열을 입력한 잘못된 예
char ch2 = "Good"; //(x)
//문자열 끝에 널 문자를 고려하여 4개가 아닌 5개로 배열 크기 설정
char str[5] = "Good";
char str[5] = {'G', 'o', 'o', 'd', \0'};
문자형
- 문자형 상수는 한 개의 한영문자, 숫자, 특수문자 등을 표현하는 자료형 char
- char형은 문자지만 내부적으로 정수형으로 처리되기 때문에 int형 변수에 대입할 수 있다.
- char형으로 표시하면 1바이트로 메모리가 할당되지만 int형으로 표시하면 4바이트로 메모리가 할당되기 때문에 메모리 낭비를 초래함.
- char형은 반드시 작은 따옴표('') 안에 기술해야 한다.
- ex) char ch1 = 'G';
- 문자형 상수를 2진수 형태로 저장하기 위해 각 문자마다 대응되는 수치 데이터인 '아스키코드(ACSCII Code)'를 정해두었다.
- ex) 'A' = 65, 'a' =97 ...
- 문자형의 종류와 크기
유형
|
크기
|
유효범위
|
char
|
1byte(8bit)
|
-128 ~ 127
|
unsigned char
|
1byte(8bit)
|
0 ~ 255
|
문자열형
- 문자열(string) 상수는 일련된 문자들의 집합으로 반드시 큰따옴표("") 안에 기술해야 한다.
- 두 문자 이상은 반드시 큰따옴표 안에 문자열을 기술해야 한다.
- 문자열 마지막에는 반드시 문자열의 끝을 나타내는 널(NULL, \0) 문자를 포함해야 한다.
- ex) char str[5] = {'G', 'o', 'o', 'd', \0'}
논리형
- C언어와 달리 C++에는 참과 거짓을 나타내는 논리형 bool
- C++에서는 true와 false를 이용해 참과 거짓을 나타낼 수 있다.
- 묵시적으로 true = 1, false = 0
- C++에서 0이 아닌 수치 데이터는 true, 0은 false로 인식
확장 특수문자(escape sequence)
- 확장 특수문자를 사용해 출력 상태를 조정할 수 있다.
- 확장 특수문자는 \로 시작한다.
- ex) \n : <Enter>키의 기능을 하며 줄을 바꾼다.
- ex) \t : 수평 탭으로 일정한 간격을 띄운다.
- 제어문자 외에도 \와 여러 기호가 만나서 이미 예약된 의미로 사용되어서 표현하기 힘든 기호를 표현한다.
- ex) \" : "문자를 출력한다.
본 게시물은 "C++ 하이킹 객체지향과 만나는 여행"을 기준으로 작성함을 알립니다.
'C++ > 이론' 카테고리의 다른 글
[C++] 보조 제어문 (break문, continue문) (0) | 2023.09.30 |
---|---|
[C++] 반복문 (for문, while문) (0) | 2023.09.29 |
[C++] 제어문과 선택문(if~else 문, switch 문) (0) | 2023.09.28 |
[C++] 연산자 (0) | 2023.09.07 |
[C++] C++의 기초 (0) | 2023.09.05 |