C++μ ν¬μΈν°λ
- Assignment Expressions (λμ ννμ)
- Arithmetic Expressions (μ°μ ννμ)
- Comparison Expressions (λΉκ΅ ννμ)
μμ μ¬μ©μ΄ κ°λ₯ν©λλ€.
ν¬μΈν°μ λν λ€μν μ°μ°(μ°μ )μ΄ κ°λ₯ν©λλ€.
λ€μμ ν¬μΈν°μ μ μ© κ°λ₯ν λͺκ°μ§ μ°μ°λ€μ λλ€.
- (++)
ν¬μΈν°μ κ°μ μ¦κ°μμΌ λ°°μ΄μ λ€μ μμλ₯Ό κ°λ₯΄ν€λλ‘ ν©λλ€.
int_ptr++; - (--)
ν¬μΈν°μ κ°μ κ°μμμΌ λ°°μ΄μ μ΄μ μμλ₯Ό κ°λ₯΄ν€λλ‘ ν©λλ€.
int_ptr--; - (+)
ν¬μΈν°μ κ°μ n * sizeof(type) λ§νΌ μ¦κ°μν΅λλ€.
int_ptr += n; or int_ptr = int_ptr + n; - (-)
ν¬μΈν°μ κ°μ n * sizeof(type) λ§νΌ κ°μμν΅λλ€.
int_ptr -= n; or int_ptr = int_ptr - n;
κ·Έλ λ€λ©΄ λ§μ½μ,
λ ν¬μΈν° λΌλ¦¬ λΊμ (-)μ νλ©΄ μ΄λ»κ² λ κΉμ?
κ·Έλ κ² νλ©΄, λ ν¬μΈν° μ¬μ΄μ μ‘΄μ¬νλ μμμ μ«μλ₯Ό μ μ μμ΅λλ€.
λ€λ§, κ³μ°μ μ¬μ©λλ λ ν¬μΈν°μ νμ μ 무쑰건 λμΌν΄μΌν©λλ€.
int n = int_ptr2 - int_ptr1;
κ³Όμ° ν¬μΈν°λΌλ¦¬ λΉκ΅λ₯Ό νλ©΄ μ΄λ»κ² λ κΉμ? (==), (!=)
λ ν¬μΈν°μ κ°, μ¦ ν΄λΉ ν¬μΈν°λ€μ΄ κ°κ° κ°λ¦¬ν€λ μμΉκ° λμΌνμ§λ₯Ό μ μ μμ΅λλ€.
μ€μνμ μ κ·Έλ€μ΄ κ°κ° 'pointing νλ μμΉμ μ μ₯λ λ°μ΄ν°'λ λΉκ΅νμ§ μμ΅λλ€.
λ€λ₯Έ μμΉμλ λκ°μ κ°μ΄ μ μ₯λμ΄ μμ μ μμμμ?
그건 μκ΄μ΄ μλ€λ λ»μ λλ€.
string s1{"hello"};
string s2{"hello"};
string ptr1 {&s1};
string ptr2 {&s2};
string ptr3 {&s3};
cout << (ptr1 == ptr2) << endl; // false
cout << (ptr1 == ptr3) << endl; // true
cout << (*ptr1 == *ptr2) << endl; // true
cout << (*ptr1 == *ptr3) << endl; // true
λ§€μ° μ§κ΄μ μ΄μ£ ?
λ§μ§λ§μΌλ‘ ν¬μΈν° μ°μ°μ κ΄λ ¨λ νκ°μ§ κ°λ¨νμ§λ§ μμ£Ό μ¬μ©λλ ννμ μλ €λλ¦¬κ² μ΅λλ€.
int scores[] {100, 90, 80, 70, -1};
int *score_ptr {scores};
while (*score_ptr != -1){
cout << *score_ptr << endl;
score_ptr++;
}
scores λ°°μ΄κ³Ό κ·Έμ ν΄λΉνλ score_ptrλ₯Ό μ μΈνμ΅λλ€.
κ·Έλ¦¬κ³ *score_ptr, μ¦ score_ptrκ° λνλ΄λ μ£Όμμ μλ κ°μ΄ -1μ΄ μλ λ,
score_ptrμ 첫λ²μ§Έ κ°μ μΆλ ₯ νκ³ ,
score_ptr++λ₯Ό ν΄μ (λ©λͺ¨λ¦¬ μ£Όμλ‘ μΉλ©΄ +4 κ² μ§μ?)
λ°°μ΄μ λ€μ μμλ₯Ό μΆλ ₯νλ λ°λ³΅λ¬Έμ λλ€.
μ΄ whileλ¬Έ λ΄λΆμ μ€μ ν μ€λ‘ μ€μΌ μ μκ³ , μ΄λ λ§€μ° μμ£Ό μ¬μ©λλ ννμ λλ€.
int scores[] {100, 90, 80, 70, -1};
int *score_ptr {scores};
while (*score_ptr != -1){
cout << *score_ptr++ << endl;
}
*score_ptr λ‘ μμ°Έμ‘°(dereference)λ₯Ό ν λ€, μ¦κ° μ°μ°μλ‘ 1μ μ¦κ°μμΌ°μ΅λλ€.
κ°λ¨νμ§λ§ λμΌν κΈ°λ₯μ νκ³ μμ£ ?
μ΄νμ ν¬μΈν°μ λ°°μ΄κ³Ό κ΄λ ¨λ νλ‘κ·Έλ¨μμ μ μ©νκ² μ¬μ©λ μ μλ ννμ λλ€.
'C++ > ν¬μΈν° (Pointers)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] μμμ ν¬μΈν° (Pointers to Constants) (0) | 2023.12.22 |
---|---|
[C++] λ°°μ΄κ³Ό ν¬μΈν°μ κ΄κ³ (Relationship Between Arrays and Pointers) (1) | 2023.12.19 |
[C++] λμ λ©λͺ¨λ¦¬ ν λΉ (Dynamic Memory Allocation) (1) | 2023.12.19 |
[C++] μμ°Έμ‘° (Dereferencing a Pointer) (0) | 2023.12.19 |
[C++] λ°μ΄ν°μ μ£Όμμ μ κ·Όνλ λ°©λ² (1) | 2023.12.19 |