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

+ Recent posts