C++ (1)- Dealing with Data

적어야 머리에 남는다! ·2021년 12월 27일
0

Hello C++

#include <iostream> //전처리 지시자- 자주 쓰는 함수들 미리 정의됌

/*
C++에서 함수를 사용하고자 한다면? 
반드시 그 함수의 원형을 미리 정의하여야 한다. 
*/

using namespace std;
// 원래는 std:cout을 써야 하는데 생략할 수 있게 해줌 
// ';' 종결자의 역할

int main(){
    //c++ 코드에는 반드시 main의 이름을 가지고 있는 이란 함수가 있어야 한다.
    
    cout << " Hello World!" << endl;
    // console out 
    //endl - 줄바꿈 

    // << 데이터의 흐름  
    return 0;
}

변수 선언과 규칙

# include <iostream>

using namespace std;

int main() {
     /*
     변수 자료형
     변수의 이름
     변수가 어디에 저장되는가 - 메모리
     */

     /*
     1. 숫자로 시작할 수 없음
     2. c++에서 사용하고 있는 키워드는 사용할 수 없음
     3. white space를 사용할 수 없음   &변수로 확인 가능 
     */

    
    //선언 - 자료형 
    int a;

    // 대입 - 값 지정

    a = 7;
    // 선언 + 대입 -> 초기화
    int b = 7;

    cout << "a = " << a << ", b = " << b << endl;

    //변수는 사용되기 전에 정의 


    return 0;
}

정수, 실수

#include <iostream>


// 최대 크기를  상수로 가져온다. 
#include <climits>


using namespace std;

int main () {

    //short, int, long, long long
    int n_int = INT_MAX;
    short n_short = SHRT_MAX;
    long n_long = LONG_MAX;
    long long n_llong = LLONG_MAX;

    cout << "int는 " << sizeof n_int << "바이트이다" <<endl;
    cout << "이 바이트의 최대값은 " << n_int << "이다" <<endl;

    
    cout << "short는 " << sizeof n_short << "바이트이다" <<endl;
    cout << "이 바이트의 최대값은 " << n_short << "이다" <<endl;
    // -32768~ 0 ~ 32767
    // unsigned short -> 음수 저장할 필요 없어서 해당하는 크기만큼 양의 영역으로 할당
    // 0 ~ 65535
    // unsigned short b = -1 --> 65534 -2 --> 65533


    cout << "long은 " << sizeof n_long << "바이트이다" <<endl;
    cout << "이 바이트의 최대값은 " << n_long << "이다" <<endl;

    
    cout << "long long은 " << sizeof n_llong << "바이트이다" <<endl;
    cout << "이 바이트의 최대값은 " << n_llong << "이다" <<endl; 

    // 실수형 

    float c = 3.14;
    int d = 3.14;

    cout << c << "/ " << d << endl;


}

문자 bool

#include <iostream>

using namespace std;

int main () {
    //char 작은 문자형 
    // ascii - 문자마다 대응되는 숫자
    // 한 단어에 대응 
    int a = 77;
    char b = a;

    cout << b << endl;
    cout << " " << endl;
    
    char c = 'g';
    cout << c << endl;
    cout << " " << endl;

    // "" char 에 사용 불가 
    //null문자 떄문에 - 문자열의 경우 어디까지 문자인지 확인 필요
    // char d = "g";
    // cout << d << endl;

    char e[] = {'a', 'b' , 'c' };
    cout << e << endl;    
    cout << " " << endl;

    char f[] = {'a', 'b' , 'c' ,'\0'};
    cout << f << endl;    
    cout << " " << endl;

    // "" 명시적으로 \0 포함  ==> string  ex) "a" => a , \0 두가지 문자 
    // 한 문자만 포함하는 char와 맞지 않음

    //boolean : 0 or 1 

    bool k = 0;
    bool s = 1;
    bool j = 10;


    cout << " " << endl;
    cout << k << s << j << endl;





    return 0;
}   

const, type change

# include <iostream>

using namespace std;

int main() {
    //원의 넓이를 구하는 프로그램
    // 반지름 * 반지름 * 파이

    int r = 3;
    float s = r * r * 3.145926535;
    //바뀔 필요가 없는 수 
    // 바뀌어서는 안되는 수 

    // constant 상수   
    //초기화 방식으로만 선언 가능 
    const float PIE = 3.145926535;

    cout << s <<endl;

    // 값 중간에 바꾸면 안됌 


    int r2 = 3;
    float s2 = r2 * r2 * PIE ;

    cout << s2 <<endl;

    // 데이터형 변환 
    // 강제적으로 변환 
    // typeName(a)  (typeName) a

    char ch = 'M';
    cout << (int)ch << " " << int(ch) << endl;

    //c++
    // static_cast<typeName> 
 
    cout << static_cast<int>(ch) << endl;


    return 0;

}

산술연산자 + auto

# include <iostream>

using namespace std;

int main() {
    
// + 1 * / %

// int a = 10;
// int b = 3;

// int c= a + b;
// int d= a - b;
// int e= a * b;
// int f= a / b;
// int g= a & b;

// cout << "c : " << c  << endl;
// cout << "d : " << d  << endl;
// cout << "e : " << e  << endl;
// cout << "f : " << f  << endl;
// cout << "g : " << g  << endl;



int a = 10;
int b = 3;
int c = 5;

int multiple = a / b * c ;

cout << "multiple : " << multiple  << endl;

// auto 
// 초기화 방식으로 선언할 떄 auto 지정하면 c++이 자동으로 데이터 타입 지정
// 좋은 방식이 아님 - 에러 나옴
// 복잡한 변수의 경우 

auto n = 100; // n은 int
auto x = 1.5; // x는 float
auto y =  1.3e12L; // long long



return 0;

}
profile
기록을 통해 한 걸음씩 성장ing!

0개의 댓글