728x90
1. 변수 선언과 규칙
#include <iostream>
using namespace std;
int main(){
//1. 변수
/*
1. 변수의 자료형
2. 변수의 이름
3. 변수가 어디에 저장되는가?(메모리 영역) - 컴파일러가 직접 결정해줌
-> 주소값 알려면 변수 앞에 &붙이면 됨
*/
int a; //int라는 자료형의 a라는 변수명
a = 7; //int라는 자료형 명시했으므로 가능
/*
* 변수명의 규칙
1. 숫자로 시작할 수 없음
2. c++에서 사용하고 있는 키워드는 사용할 수 없음
3. white space(space/tab/enter)를 사용할 수 없음
*/
{ int b;
{
//int a; 하단 블록에서 정의되면, 상단에서 사용될 수 없음
b=3; //상단 블록에서 정의되었으므로 가능
}
//a=5;
}
int b = 3; //초기화 : 선언하자마자 대입
cout << a << b; //73
//변수는 사용되기 이전에 정의되어야 함
return 0;
}
2. 정수형 자료형과 실수형 자료형
#include <iostream>
#include <climits>
using namespace std;
int main(){
/*
* 정수형: 소수부가 없는 수 -> 음의 정수, 0, 양의 정수
* */
//short, int, long, long long
//메모리가 한정되어 있는데, 정수 크기와 정수 개수의 스펙트럼이 넓다 보니
//이를 효율적으로 활용하기 위해 정수형을 네 가지의 types로 나누었음
int n_int = INT_MAX; //이는 <climits>에서 정의된 int의 max값에 대한 '상수'
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_longlong = LLONG_MAX;
cout << "int는 " << sizeof n_int << "바이트이다." <<endl; //4바이트
cout << "이 바이트의 최대값은 " << n_int << " 이다." <<endl;
cout << "short는" << sizeof n_short << "바이트이다." <<endl; //2바이트
cout << "이 바이트의 최대값은" << n_short << " 이다." <<endl;
//short 자료형은 음의 정수를 표현할 수 있음 : ~32768 ~ 32767
cout << "long은" << sizeof n_long << "바이트이다." <<endl; //4바이트
cout << "이 바이트의 최대값은" << n_long << " 이다." <<endl;
cout << "long long은" << sizeof n_longlong << "바이트이다." <<endl; //8바이트
cout << "이 바이트의 최대값은" << n_longlong << " 이다." <<endl;
unsigned short b;
//음의 정수형을 사용하지 않을 예정이므로, 범위를 0~655535까지 넓힐 수 있음
b = -1;
cout << b << endl; //65535
/*
* 실수형: 소수부를 저장할 수 있음
*/
float a = 3.14; //3.14
int c = 3.14; //3
cout << a << endl << c << endl;
3. char형과 bool형
#include <iostream>
using namespace std;
int main(){
//char: 작은 문자형-아스키코드 // 아스키코드로 표현할 수 있는 문자 내에서만
int a = 77;
char b = a; //M
char c = 'a'; //a
cout << b << c << endl;
//큰따옴표로 표현되는 문자열은 char형로 사용될 수 없음!!!
//c++에서 문자 출력하고자 할 때, 문자를 정수로 저장하는데,
//이를 위해 어디까지가 문자인지 알아야 함
//한 개의 문자가 아닌 긴 문자열을 출력하고자 할 때는, 어디까지가 문자인지 표시하는 null 문자(\0)가 필요함
//큰 따옴표는 명시적으로 null 문자가 표현된 것 -> string 자료형을 위해 사용
char d[] = {'a', 'b', 'c'};
cout << d << endl; //abc�aMM //우연치않게 null을 만날 때 까지 출력을 반복
char e[] = {'a', 'b', 'c', '\0'};
cout << e << endl; //abc
//char f = "a" //'a'와 null 문자를 함께 저장한 건데, char은 한 개의 문자만 포함해야 하므로, 오류 발생
//한글은 char-아스키코드에서 지원해주지 않음, 유니코드로만 표현됨
//c-wput, location, string형 사용 등
/*
* bool 타입: 숫자를 0 혹은 1로만 저장, 0이외 모든 수는 1로 저장됨
* */
bool g = 0; //0
bool h = 1; //1
bool i = 10; //1
cout << g << endl << h << endl << i << endl;
}
3. 상수형과 자료형변환
int main(){
/*상수: 바뀔 필요가 없거나, 바뀌어서는 안 되는 수 -> 변수형까지 선언해야 함*/
const float PIE = 3.1415926;
int r = 3;
float s3 = r*r*PIE;
cout << s3; //28.2743
/*데이터형 변환
1. 특정 데이터형의 변수에 다른 데이터형 값을 대입했을 때
2. 수식에 데이터형을 혼합하여 사용했을 때
3. 함수에 매개변수를 전달할 때
*/
int a = 3.14;
cout << a << endl; //3 //자동으로 자료형변환
//강제적으로 데이터형 변환
//typeName(a) //바꿀데이터형(변수) //(바꿀데이터형)변수
//c++ : static_cast<typeName>
char ch = 'M';
cout << int(ch) << endl << static_cast<int>(ch) << endl << ch;
return 0;
}
4. 산술연산자와 auto
#include <iostream>
using namespace std;
int main(){
/*
연산자: + - * / %
*/
// '/'에서 두 개의 피연산자가 모두 정수이면 '몫' 계산임
// 계산에서 둘 중 하나가 실수형이면, 결과도 실수형으로 나옴
int a = 3 + 2;
cout << a; //5
//연산 시 일반대수학의 우선순위를 따름 (곱하기, 나누기 > 더하기, 빼기)
//곱하기와 나누기 간 순서는... 구글링해보기!
/*auto*/
auto n = 100; //int형으로 자동 지정
//그러나 auto로 인해 의도와 다른 지정이 발생할 수 있으므로 사용 지양
}
728x90
'개발 > c++' 카테고리의 다른 글
[c++ 프로그래밍 입문] 3. 반복문 (0) | 2023.08.22 |
---|---|
[c++ 프로그래밍 입문] 2-3. 포인터 연산 (0) | 2023.08.20 |
[C++ 프로그래밍 입문] 2-2. Complex Data (포인터) (0) | 2023.08.19 |
[C++ 프로그래밍 입문] 2-1. Complex Data(배열, 문자열, 입력 cin, string, struct, union, enum) (0) | 2023.08.19 |
[C++ 프로그래밍 입문] Hello, world! (0) | 2023.08.18 |