본문 바로가기
C++

C++ 기초(22.04.05)

by Luden59 2022. 4. 7.
// 220405_HelloWorld.cpp : 이 파일에는 'main' 함수가 포함됩니다. 거기서 프로그램 실행이 시작되고 종료됩니다.
// 주석: 실행되지 않고, 설명만을 위해 사용되는 문법

/* : 컴파일 대상 아님
* 여러 줄짜리
* 주석을 사용하고
* 싶을 때
*/

#include <iostream> // 컴파일 대상. #include를 이용해서 다른 소스파일의 내용을 불러올 수 있다.
#include <string> //string 문자열 데이터 타입 사용하기 위해
using namespace std; //네임스페이스 사용
//iostream: i(입력) o(출력) stream(흐름) > 콘솔창을 통해 데이터를 입력/출력 하라고 만든 파일
//#include "파일명.h": C라이브러리 파일이 포함하는 경우, 프로그래머가 만든 소스파일을 포함시킬 때 
//#include <파일명>: c++라이브러리 파일 포함하는 경우
//#include 를 사용하는 문법은 소스파일의 가장 상단에 위치해야 한다. 위에서 아래로 실행되기 때문에, 중간, 끝에 있을 경우 호출하기 전에 사용하게 된다.

/*
* c++ 프로그래밍 언어가 가지는 표현적 특성
* > 대소문자 구분(컴파일러가 구분한다)
* > 띄어쓰기를 통해 각 요소를 구분한다. ex. std::cout, <<, "Hello World!\n", ; 등 요소를 띄어쓰기를 구분
*   int num = 1;
* > 실행문의 끝을 ;(세미콜론)으로 마무리한다.
*/

int main() //함수. int: 함수의 결과의 데이터 타입. () 안에는 함수에 넣을 입력값의 설명. main이라는 이름의 함수는 실행시 자동 실행 된다. main 함수가 끝나면 프로그램도 끝난다.
{
    //함수 내용.

    //변수: 데이터를 저장하는 메모리 공간에 붙여진 이름(ex. num)
    int num = 3;
    
    /*
    * > 이름   > 값   > 메모리주소   > 크기(데이터 타입에 의한)
    * > num    > 3    > ?            > ?(4
    * 
    * >> 데이터 타입: 나눈 이유(처리/계산하는 방식이 달라서, 메모리 크기를 아끼기 위해)
    * > short/int/long/long long: 정수형 변수(1,2,0,-1,-2)를 저장하는 데이터타입
    * > float/double/long double: 실수형 변수(0.2,0.12,-0.9)를 저장하는 데이터타입
    *   * float: 소주점 7가리까지 표현가능
    *   * double: 소수점 35자리까지 표현 가능
    *   * long double은 double과 크기와 표현 범위가 같지만, 더 디테일하다.
    * > char: 문자형 변수를 저장하는 데이터타입
    * > string/문자열 배열: 문자열 변수를 저장하는 데이터타입
    * 
    * > 각 데이터타입에는 어떤 것들이 있는지
    * > 각 데이터타입의 크기는 어떻게 되고, 표현할 수 있는 숫자의 범위는 어떻게 되는지.
    * 
    * signed > 부호 있음. unsigned > 부호 없음(음수값 없음)
    * wchar_t > 와이드 문자형/유니코드, 아랍등에서
    */
    unsigned short maxShortNum = USHRT_MAX;
    unsigned short minShortNum = 0;

    cout << maxShortNum << endl;
    cout << minShortNum << endl;
    cout << "short = " << sizeof(short) << "Byte" << endl;
    cout << "minShortNum = " << sizeof(minShortNum) << "Byte" << endl;
    cout << "int = " << sizeof(int) << "Byte" << endl;
    cout << "long = " << sizeof(long) << "Byte" << endl;
    cout << "long long = " << sizeof(long long) << "Byte" << endl;
    cout << "__int8 = " << sizeof(__int8) << "Byte" << endl;
    cout << "__int16 = " << sizeof(__int16) << "Byte" << endl;
    cout << "__int32 = " << sizeof(__int32) << "Byte" << endl;
    cout << "__int64 = " << sizeof(__int64) << "Byte\n" << endl;
    
    char a = 'A';//A: 65 아스키 코드
    cout << (char)(a+1) << endl;
    cout << "char = " << sizeof(char) << "Byte\n" << endl;

    string helloText = "Hello World!!";
    cout << helloText << endl << endl;
    cout << "string = " << sizeof(string) << "Byte\n" << endl;

    cout << "float = " << sizeof(float) << "Byte" << endl;
    cout << "double = " << sizeof(double) << "Byte" << endl;
    cout << "long double = " << sizeof(long double) << "Byte\n" << endl;

    string name;
    cin >> name;
    cout << name << "님 환영합니다." << endl;

    //std::cin >> num; //cin: 입력. >> 옆에 입력값이 들어갈 변수
    //
    //std::cout << num << " Hello World!\n\n"; //\n: 줄바꿈. 실행시 결과는 코드에 따라 달라진다. 소스파일의 형태는 중요하지 않다.
    //
    //std::cout << "1 Hello World!\n";
    //std::cout << "2 Hello World!\n";
    //std::cout << "3 Hello World!\n";
}

// 프로그램 실행: <Ctrl+F5> 또는 [디버그] > [디버깅하지 않고 시작] 메뉴
// 프로그램 디버그: <F5> 키 또는 [디버그] > [디버깅 시작] 메뉴

// 시작을 위한 팁: 
//   1. [솔루션 탐색기] 창을 사용하여 파일을 추가/관리합니다.
//   2. [팀 탐색기] 창을 사용하여 소스 제어에 연결합니다.
//   3. [출력] 창을 사용하여 빌드 출력 및 기타 메시지를 확인합니다.
//   4. [오류 목록] 창을 사용하여 오류를 봅니다.
//   5. [프로젝트] > [새 항목 추가]로 이동하여 새 코드 파일을 만들거나, [프로젝트] > [기존 항목 추가]로 이동하여 기존 코드 파일을 프로젝트에 추가합니다.
//   6. 나중에 이 프로젝트를 다시 열려면 [파일] > [열기] > [프로젝트]로 이동하고 .sln 파일을 선택합니다.

 

  • 데이터 타입
    • unsigned: 부호가 없는 데이터 타입
    • 1바이트 데이터 타입: 8개의 비트, signed(부호 있음)일 경우 앞에 왼쪽 끝 자리는 부호 판별 시 사용. 즉, 2에 7승(8-1) 범위 만큼 음수, 양수 표기 가능
    • wchar_t: 와이드 문자형으로 사용. 4바이트로, 유니코드 사용 시 사용하며, 앞에 L을 붙인다. 아랍 등의 문자가 많은 국가에서 사용.
    • 실수형 데이터 타입: 정수형 타입이 숫자 표기 범위였다면, 실수형 데이터 타입은 크기가 커질수록, 더 디태일하게 표기 가능. (float: 7자리, double: 35자리까지 표기 가능)
  • 기타
    • \n과 endl 차이점
      • \n은 c부터 사용되어왔던 문법(이스케이프 문자), endl iosteam에서 사용되는 문법(단순 문장 나누기 뿐만 아니라, 플러시 역할도 한다.)
    • iosteam: i(입력) o(출력) stream(흐름) > 콘솔창을 통해 데이터를 입력/출력
    • #include “파일명.h”: c라이브러리 파일이 포함되는 경우, 프로그래머가 만든 소스파이를 포함시킬 때
    • #include <파일명>: c++ 라이브러리 파일을 포함하는 경우
    • #include 문은 항상 파일 상단에 두어야한다.
    • 데이터 타입을 나눈 이유: 처리/계산하는 방식이 다르기 때문에, 메모리 크기를 효율적으로 사용하기 위해서.

빨리끝내조 데이터타입 정리.docx
0.15MB