#include <iostream>
int main(){
int i = 2;
float pi = 3.14;
double x = 1.5 e6;
char c1 = 'a';
bool cmp = i < pi;
}
char, int, long, short와 같은 정수타입에서 사용가능
기본적으로는 signed이지만 unsigned로 선언하면 음수값은 갖지 않고 양수값을 표현할 수 있는 범위가 2배로 넓어지게 된다.
auto키워드는 변수 타입을 자동으로 지정해준다.
#include <iostream>
int main(){
int i = 1;
auto n = i + 2; //n은 int
}
상수는 값을 변경할 수 없다. 따라서 선언과 동시에 값을 반드시 설정해주어야 한다.
#include <iostream>
int main(){
const int c1 = 2;
const int c2; //상수에 값을 할당하지 않았기 때문에 컴파일 에러 발생
}
전역변수 : 전영역에서 범위 제한 없이 사용 가능한 변수
지역변수 : 변수를 선언한 함수 내에서만 사용 가능한 변수
전역변수는 소프트웨어의 규모가 커짐에 따라 수정사항을 추적하기가 어려워지기 때문에 왠만하면 사용하지 않는 것이 좋다.
변수의 값이 너무 큰 경우에 값이 축소되어 데이터가 손실될 수 있다.
uniform initialization과 braced initialization은 이를 방지할 수 있다.
#include <iostream>
int main(){
long l1 = 1234567890123; //값을 축소하여 컴파일
long l2 = {1234567890123}; //값이 변경되어 컴파일 되는 것을 방지한다. (컴파일 에러 발생)
int i1 = 3.14; //int는 소수점을 가질 수 없기 때문에 값을 축소하여 컴파일
int i2 = {3.14}; //값이 변경되어 컴파일 되는 것을 방지한다. (컴파일 에러 발생)
unsigned u1 = -3; //unsigned는 음수를 가질 수 없기 때문에 값을 변경해 컴파일
unsigned u2 = {-3}; //컴파일이 되는 것을 방지 한다. (컴파일 에러 발생)
}