// 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 문은 항상 파일 상단에 두어야한다.
- 데이터 타입을 나눈 이유: 처리/계산하는 방식이 다르기 때문에, 메모리 크기를 효율적으로 사용하기 위해서.
- \n과 endl 차이점
'C++' 카테고리의 다른 글
C++ 기초(3): 연산자(논리/3항 연산자)와 난수 (22.04.11) (0) | 2022.04.12 |
---|---|
C++ 쫌쫌따리(1): Visual studio 자동 완성 단축키와 코드 분할 화면, cout 내부 처리 등(22.04.07) (0) | 2022.04.11 |
C++ 기초(2): 연산자 (22.04.07) (0) | 2022.04.11 |
C++ 예제: Up/Down 게임(22.04.07) (0) | 2022.04.07 |
C++ 기초(1) (22.04.06) (0) | 2022.04.07 |