Modern C++μμλ μ£Όλ‘ λ°°μ΄λ³΄λ€λ 벑ν°λ₯Ό μ¬μ©ν©λλ€.
λ°°μ΄μλ μ¬λ¬κ°μ§ νΉμ§μ΄ μ‘΄μ¬ν©λλ€.
λνμ μΈ νΉμ§ μ¬λ¬κ°μ§λ₯Ό μκ°ν΄λλ¦¬κ² μ΅λλ€.
1. λ°°μ΄μ λͺ¨λ μμλ€μ κ°μ λ°μ΄ν° νμ μ΄μ¬μΌ ν©λλ€.
int my_arr[] {30, 50, 'a', "Ricky"} // π«π«π« μ€λ₯ λ°μ
int my_arr[] {30, 50, 100, 300000} // Good
char my_arr[] {'a', 'c', 'q' ,'h'} // Good
2. λ°°μ΄μ ν¬κΈ°λ κ³ μ λμ΄ μμ΅λλ€. (λ°°μ΄μ μμμ μ΄ μ«μλ μ μΈ μ΄ν λ³νν μ μμ΅λλ€.)
κ·Έμ λ°ν΄, 벑ν°λ ν¬κΈ°κ° κ°λ³μ μ λλ€.
3. Array μ¬μ© μ€ μΈλ±μ€ μ΄κ³Όμ λν κ²μ¬κ° μ‘΄μ¬νμ§ μμ΅λλ€.
μ¦, arrayμ ν¬κΈ°λ₯Ό 3μΌλ‘ μ μΈνκ³ 3 μ΄μμ indexμ λν΄ μΆλ ₯μ νλ €κ³ νλ©΄,
μ€λ₯λ λ°μνμ§ μμ§λ§ random garbage dataκ° μΆλ ₯λ©λλ€.
4. λ°°μ΄μ μ΄λ¦μ [index 0]λ²μ§Έ μμμ μμΉλ₯Ό λνλ λλ€.
λ°°μ΄μ μ μΈνκ³ μ΄λ¦μ μΆλ ₯νλ©΄ μ΄λ ν 16μ§μ μ«μκ° λμ΅λλ€.
μ΄κ²μ΄ λ°λ‘ ν΄λΉ λ°°μ΄μ΄ μ μ₯λ μμΉ, μ¦ index 0λ²μ§Έ κ°μ΄ μ μ₯λ μμΉμ λλ€.
μ¬κΈ°μ λμ± λμκ°μ, [index]λ κ·Έ λ°°μ΄μ μμμ μμ λΆν°μ offsetμ λνλ λλ€.
μ¦, indexκ° 1μ΄λ©΄ λ°°μ΄μ μμμ (μκΉμ 16μ§μ κ°)μμ 1λ§νΌ offsetλ μμΉμ μ μ₯λ λ°μ΄ν°λ₯Ό λνλ λλ€.
μ¬κΈ°μ, C++λ sizeof() ν¨μλ₯Ό ν΅ν΄ ν΄λΉ λ°°μ΄μ λΉνΈ κ°μ μ΄ν΄νκΈ° λλ¬Έμ,
offsetμ΄ 1μ΄λΌκ³ μ«μ 1λ§νΌ λ¨μ΄μ‘λ€λ λ»μ΄ μλλλ€.
νΈμμ νΉμ int λ°°μ΄μ numbersμ 첫λ²μ§Έ κ°μ λ°μ΄ν°μ μμΉκ° 1000μ΄λΌκ³ κ°μ μ ν΄λ΄ μλ€.
int numbers[5] {10, 20, 30, 40, 50}
κ°λ€μ μΈλ±μ€λ κ°κ° 10→0, 20→1, 30→2, 40→3, 50→4 μ λλ€.
μ¬κΈ°μ 첫λ²μ§Έ κ°μΈ 10μ μμΉκ° μΈλ±μ€ 0, μ¦ 1000μ΄λκΉ,
20μ 1000μμ 1 offsetμ κ°μ κ°μ§ μμΉ, 30μ 2μ μμΉ 40μ 3μ μμΉ, 50μ 4μ offsetμ κ°μ κ°μ§ μμΉμ μ‘΄μ¬ν©λλ€.
μ¬κΈ°μ, sizeof(int) = 4, μ¦ μ μ λ°μ΄ν°λ 4λ°μ΄νΈ λ©λͺ¨λ¦¬λ₯Ό μ°¨μ§νκΈ° λλ¬Έμ,
1000, 1001, 1002, 1003, 1004, 1005μ μμΉκ° μλλΌ,
1000, 1004, 1008, 1012, 1016 μ μμΉμ κ°κ° κ°μ΄ μ μ₯λ κ²μ λλ€.
c++λ sizeof ν¨μλ₯Ό ν΅ν΄ λ°°μ΄μ νμ μ byte ν¬κΈ°λ₯Ό μ΄ν΄νκΈ° λλ¬Έμ,
λ°°μ΄μ μλ£νμ΄ λ€λ₯Ό λμλ κ°μ offset, μ¦ κ°μ indexμ λν΄μλ λ€λ₯Έ λ°μ΄ν° μμΉμ μλ κ°μ μ μ νκ² μ κ·Όν©λλ€.
κ°λ Ή μλ£νμ΄ μ μκ° μλ doubleμ΄μλ€λ©΄, (doubleμ 8 bytesλ₯Ό μ°¨μ§ν©λλ€)
1000, 1008, 1016, 1024, 1032μ μμΉμ λ°μ΄ν°λ€μ΄ μ μ₯λμ΄ μμ κ²μ λλ€.
* λ°μ΄ν°κ° 무쑰건 1000μ μ μ₯λλ€λ λ»μ΄ μλκ³ , μ΄ν΄λ₯Ό μν΄ μ²«λ²μ§Έ κ°μ΄ 1000μ μ μ₯λλ€κ³ κ°μ ν κ²μ λλ€.
λν, μμμμ 1000~ 1016μ μμΉμ λ°μ΄ν°κ° λ°°μ λμλ€κ³ ν΄μ, κ·Έ λ―Έλ§ νΉμ μ΄κ³Όνλ μμΉμλ λ°μ΄ν°κ° μλκ²μ΄ μλλλ€.κ·Έλ κΈ° λλ¬Έμ 3λ² κ·μΉμμ μ²λΌ μ΄κ³Όλ indexλ₯Ό μΆλ ₯νλ©΄ μ ν μ°κ΄μλ garbage dataκ° μΆλ ₯λλ κ²μ λλ€.
C++μμλ λ¬Όλ‘ 2μ°¨μ λ°°μ΄μ μ¬μ©ν μ μμ΅λλ€.
2μ°¨μ λ°°μ΄λ λμΌνκ² μ μΈκ³Ό λμμ μ΄κΈ°νλ₯Ό ν μλ, νμ§ μμμλ μμ΅λλ€.
int movie_rating [3][4];
// or
const int rows {3};
const int cols {4};
int movie_rating [rows][cols];
// or
int movie_rating [3][4]
{
{3, 3, 1, 5},
{1, 5, 5, 3},
{2, 4, 4, 2}
};
'C++ > κΈ°ν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] μ μλΌλ¦¬μ λλμ (0) | 2023.12.07 |
---|---|
[C++] Increment/Decrement Operator (μ¦κ°μ°μ°μ) ++, -- (0) | 2023.12.07 |
[C++] Assignment Operator (ν λΉ μ°μ°μ), = (0) | 2023.12.06 |
[C++] μμ(constant) (0) | 2023.12.05 |
[c++] using namespace std; (0) | 2023.12.05 |