cout
- printfμ λΉμ·νλ€.
- νμ€ μΆλ ₯ μ€νΈλ¦Ό κ°μ²΄λ‘, μ½μμ λ°μ΄ν°λ₯Ό μΆλ ₯νλ λ° μ¬μ©λ¨
- coutμ μ€νΈλ¦Ό μ°μ°μ <<λ₯Ό μ¬μ©νμ¬ μΆλ ₯ν λ°μ΄ν°λ₯Ό μ§μ νλ€
cin
- scanfμ λΉμ·νλ€.
- νμ€ μ λ ₯ μ€νΈλ¦Ό κ°μ²΄λ‘, μ¬μ©μλ‘λΆν° λ°μ΄ν°λ₯Ό μ λ ₯λ°λ λ° μ¬μ©
- μ λ ₯ μ°μ°μ >>λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ λ ₯λ°λλ€.
리ν°λ΄ (literal)
νλ‘κ·Έλ¨μμ μ¬μ©λλ κ° μ체λ₯Ό λ§νλ€.
C++μμ 리ν°λ΄(literal)μ μ½λμμ μ§μ μ μΌλ‘ κ°μ νννλ νκΈ°λ²μ΄λ€.
리ν°λ΄μ λ³μλ μμλ₯Ό μ μΈν λ μ¬μ©ν μ μμΌλ©°, λ°μ΄ν°μ ꡬ체μ μΈ κ°μ μ½λμ μ§μ μμ±ν λ μ¬μ©λλ€.
#include <iostream>
int main() {
ββββ// μ μ 리ν°λ΄
ββββint decimal = 42;
ββββint octal = 052; // 8μ§μ
ββββint hex = 0x2A; // 16μ§μ
ββββ// μ€μ 리ν°λ΄
ββββdouble float1 = 3.14;
ββββdouble float2 = 1.23e4; // μ§μ νκΈ°λ²
ββββ// λ¬Έμ 리ν°λ΄
ββββchar character = 'a';
ββββchar newline = '\n';
ββββ// λ¬Έμμ΄ λ¦¬ν°λ΄
ββββconst char* str = "Hello, World!";
ββββ// λΆμΈ 리ν°λ΄
ββββbool isTrue = true;
ββββbool isFalse = false;
ββββ// λ 리ν°λ΄
ββββint* ptr = nullptr; // C++11 μ΄ν
ββββ// μ¬μ©μ μ μ 리ν°λ΄ (μ: 1s, 2min λ±)
ββββ// (μ¬μ©μ μ μ 리ν°λ΄μ μ¬μ©νκΈ° μν μ μλ λ³λ)
ββββstd::cout << "Decimal: " << decimal << std::endl;
ββββstd::cout << "Octal: " << octal << std::endl;
ββββstd::cout << "Hex: " << hex << std::endl;
ββββstd::cout << "Float1: " << float1 << std::endl;
ββββstd::cout << "Float2: " << float2 << std::endl;
ββββstd::cout << "Character: " << character << std::endl;
ββββstd::cout << "String: " << str << std::endl;
ββββstd::cout << "Boolean True: " << isTrue << std::endl;
ββββstd::cout << "Boolean False: " << isFalse << std::endl;
ββββstd::cout << "Pointer: " << ptr << std::endl;
ββββreturn 0;
}
κ°λ μ±κ³Ό μ μ§λ³΄μμ±μ μν΄μ 리ν°λ΄ λμ μ μμλ₯Ό μ¬μ©νλ€ !
μμ (constant)
μμκ°μ μ μΈν λ constλ₯Ό λΆμΈλ€. μ¦ const ν€μλλ‘ λ³μλ₯Ό μμλ₯Ό μ μΈν μ μλ€. μμ(constant)λ ν λ² κ°μ΄ μ ν΄μ§κ³ λλ©΄ κ°μ΄ λ³κ²½λ μ μμΌλ©° μ΄κΈ°κ°μ μ£Όμ΄ μ΄κΈ°νν΄μΌ νλ€.
ex)
const float PI = 3.14F; //μμ λ³μ PIμ μ μ
- 맀ν¬λ‘ μ¬μ©λ³΄λ€λ μμ μ¬μ©μ κΆμ₯νλ€.


리ν°λ΄κ³Ό νμ

νμ
λ°μ΄ν° νμ μ μν
- ν΄λΉ νμ μ μνλ μλ£ κ°μ μ§ν©μ κ²°μ ν¨
- ν΄λΉ νμ μ μνλ μλ£μ μ μ© κ°λ₯ν μ°μ°μ κ²°μ ν¨
- μλ£μ μ μ₯ ννλ₯Ό κ²°μ ν¨
C++ λ°μ΄ν° νμ λΆλ₯(μ’ λ₯)
- κΈ°λ³Έ νμ : C++ μΈμ΄κ° μ§μ μ§μνλ νμ
- μ λ νμ : λ€λ₯Έ νμ μ κΈ°λ°μΌλ‘ νμ¬ κ΅¬μ±λλ νμ
- μ¬μ©μ μ μ λ°μ΄ν° νμ : ꡬ쑰체, ν΄λμ€ λ±

μ‘°μ μ(Modifier)
μμμ΄(μ‘°μ μ)
- "μμμ΄" λλ "μ‘°μ μ" (modifier)λ λ³μλ λ°μ΄ν°μ μμ±μ λ³κ²½νκ±°λ, λ°μ΄ν° νμ μ νμ₯νμ¬ νΉμ ν λμμ΄λ νΉμ±μ λΆμ¬νλ ν€μλμ΄λ€.
- μμμ΄λ λ°μ΄ν°μ ν¬κΈ°, λΆνΈ, μ μ₯ λ°©μ λ±μ μ μ΄ν μ μλ€.
- μ£Όμ μμμ΄μλ const, volatile, static, extern, mutable, constexpr, thread_local λ±μ΄ μλ€.
- signed, unsigned, short, longμ μμμ΄λ‘ μ¬μ©λ¨
- signedλ μμμ μμλ₯Ό λͺ¨λ ννν μ μλ μ μν λ°μ΄ν° νμ μ μλ―Ένκ³ unsignedλ μμλ₯Ό νννμ§ μκ³ μμλ§ ννν μ μλ μ μν λ°μ΄ν° νμ μ μλ―Ένλ€.
- μ : short == short int = signed short

μμ ννλ²(two's complement)
MSB(Most Significant Bit)
- 0μ΄λ©΄ μμ, 1μ΄λ©΄ μμλ‘ λνλΈ
- (-1)μ ννμ MSBλ₯Ό 1λ‘, λλ²μ§ bitsλ₯Ό λ°μ ν +1
Two's complementλ μμλ₯Ό νννκΈ° μν΄ μ΄μ§μμ κ° λΉνΈλ₯Ό λ°μ (0μ 1λ‘, 1μ 0μΌλ‘)νκ³ , 1μ λνλ λ°©μ
κ³Όμ
- μμλ₯Ό μ΄μ§μλ‘ λ³νν©λλ€: μ°μ μμλ₯Ό νννκ³ μ νλ μμλ₯Ό μ΄μ§μλ‘ λ³ν
- λͺ¨λ λΉνΈλ₯Ό λ°μ μν΅λλ€: 1μ 0μΌλ‘, 0μ 1λ‘ λ°κΏ
- 1μ λν©λλ€: λ°μ λ κ²°κ³Όμ 1μ λν¨
μμ 1μ μ΄μ§μλ‘ νν: 1μ 0000 0001 (8λΉνΈ μλ₯Ό λ€μ΄)
λͺ¨λ λΉνΈλ₯Ό λ°μ : 1111 1110
1μ λνκΈ°: 1111 1110 + 1 = 1111 1111
κ²°κ³Όμ μΌλ‘, -1μ Two's complement ννμ 1111 1111
1μ Two's complement ννμ 0000 0001, -1μ Two's complement ννμ 1111 1111 μ΄λ€.
κΆμ₯νλ Good Design μ½λ© λ°©λ²
λ³μλ μ€μ λ‘ μ¬μ©λλ μμ μ (νμν μμ μ κ·Έλ κ·Έλ) μ μνλ€. (μμμμ μ μνλ κ²μ΄ μλλΌ)
μμμ§μ μμ μ μνλ©΄ λ³μλ₯Ό μΆμ νλ κ²μ΄ μ΄λ ΅κΈ° λλ¬Έμ΄λ€.

μλ³μ(λ³μ) λͺ λͺ
- μλ³μ(identifier) : λ³μ, μμ, ν¨μ, ν΄λμ€ λ± κ°λ°μκ° κ²°μ ν μ΄λ¦
C++ λͺ λͺ κ·μΉ
- μλ³μλ μλ¬Έμ, μ«μ, λ°μ€λ‘ ꡬμ±. λ¨ μ«μλ 첫 λ¬Έμλ‘λ μ¬μ©νλ©΄ μλ¨
- μλ¬Έμλ λλ¬Έμμ μλ¬Έμλ₯Ό ꡬλΆν¨
- λ/μλ¬Έμκ° κ΅¬λΆλκΈ°λ νμ§λ§, λ/μλ¬Έμμ μν΄μ ꡬλΆλλ μλ³μλ₯Ό μ¬μ©νμ§ μλλ€.
- ν€μλλ μμ½μ΄λ‘μ μλ³μλ‘μ μ¬μ©ν μ μλ€.
- λ³μμ μ΄λ¦λ§μΌλ‘ μ μ₯λλ κ°μ μ©λ/μν μ μΆμΈ‘ν μ μλλ‘ ν΄μΌ νλ€.
- ν€μλλ μλμ§λ§, STLμμ μ μλ νμ€ μλ³μλ μ¬μ©νμ§ μλλ‘ νλ€.
- '_' λ±μ μμ€ν ν¨μμμ μ¬μ©νλ―λ‘ μ£Όμν΄μ μ¬μ©νλλ‘ νλ€
- μΌλ°νλμ§ μμ μ½μ΄μ μ¬μ©μ μμ νλ€.
< μλ³μλ‘ μ¬μ©ν μ μλ ν€μλ μ’ λ₯ >

λ³μ μ΄λ¦μ μ
νμ μ ν¬κΈ°

<νμ μ κ°μ λ²μ> : κ°μ λ²μλ λ°μ΄νΈ μμ λ°λΌμ κ²°μ λλ€.

κΆμ₯νλ Good Design μ½λ© λ°©λ² 2 : cstdintμ μ¬μ©
- λμ CPUμ λ°λΌμ νμ μ λ°μ΄νΈκ° κ²°μ λλ€
- ex) 4λ°μ΄νΈ CPUμμμ μ μ λμ μ½λκ° 2λ°μ΄νΈ CPUμμλ overflowκ° λ μ μμ
- λ°μ΄νΈ μλ₯Ό λͺ μν νμ€ νμ μ μ¬μ©
cμΈμ΄ : <stdint.h>
c++μΈμ΄ : <cstdint>

μ μν κ°μ λ²μ
- ν€λ νμΌ <climits>
- INT_MAX, INT_MIN λ±
μ€μν κ°μ λ²μ
- ν€λ νμΌ <cfloat>
- FLT_EPSILON, FLT_MIN, FLT_MAX
νμ μ μ΅λ/μ΅μκ°
- numeric_limits<T> ν΄λμ€λ₯Ό ν΅ν΄ μ μ μλ€.

ex)
#include <limits>
cout << numeric_limits<int>::max() << " is the maximum int\n"; νΉμ minμΌλ‘λ κ°λ₯

νΉμ char λ¬Έμμ΄

- 8μ§μ 리ν°λ΄μ μ€μλ₯Ό μ λ°ν μ μμΌλ―λ‘ μ¬μ©μ΄ κΆμ₯λμ§ μλλ€
C++ νμ κ³Ό μμμ λν΄ νμ΅νκΈ° (2)
C++ νμ κ³Ό μμμ λν΄ νμ΅νκΈ° (1)cout - printfμ λΉμ·νλ€.- νμ€ μΆλ ₯ μ€νΈλ¦Ό κ°μ²΄λ‘, μ½μμ λ°μ΄ν°λ₯Ό μΆλ ₯νλ λ° μ¬μ©λ¨- coutμ μ€νΈλ¦Ό μ°μ°μ cin- scanfμ λΉμ·νλ€.- νμ€ μ λ ₯ μ€νΈλ¦Ό κ°
codebunny99.tistory.com