λ³μλΌλ μ΄λ¦μ "λ³ν μ μλ μ"λΌκ³ μκ° ν μ μμΌλ©°, μμ(λ³νμ§ μλ μ)μ λλΉλλ κ°λ μ΄λ€.
μ°λ¦¬κ° νμμμ μ λ°°μ λ ν¨μ(f(x))μμμ xμ μ¬λ¬κ°μ§ κ°μ λμ ν΄ λ³Ό μ μλλ°, μ΄μ λ§μ°¬κ°μ§λΌκ³ ν μ μλ€.
int foo;
foo = 5;
μμ μ½λμμ fooκ° λ³μλ₯Ό λνλ΄λ μ΄λ¦μ΄λ€.
μ»΄ν¨ν°μ λ©λͺ¨λ¦¬ κ΄μ μμ 보면, λ³μ fooλ intμ ν¬κΈ°(4byte)λ§νΌ λ©λͺ¨λ¦¬ 곡κ°μ μ°¨μ§νκ³ μ΄λ¦μ fooλΌκ³ λνλΌ μ μλ κ²μ΄λ€. λ€λ§, fooκ° λ©λͺ¨λ¦¬ μ체μ΄κ±°λ κ° 5λΌκ³ νκΈ° 보λ€λ μ°¨μ§νκ³ μλ λ©λͺ¨λ¦¬ 곡κ°μ μ΄λ¦μ΄κ³ , κ·Έ 곡κ°μ 5μ κ°μ λμ νλ€κ³ ν μ μλ€.
C/C++μμμ λ³μλ κΈ°μ€μ λ°λΌ μ¬λ¬ λΆλ₯λ‘ λλ μ μλ€.
λ¨Όμ λ³μμ μ¬μ© λ²μμ λ°λΌμ,
- μ§μ λ³μ
- μ μ λ³μ
- λ©€λ² λ³μ
λ‘ λλ μ μλ€.
μ§μ λ³μλ scope, μ¦ {} λ΄λΆμ μμΉν λ³μμ΄λ©°, scopeλ₯Ό λΉ μ Έλκ°λ μκ° ν λΉλ λ©λͺ¨λ¦¬λ ν΄μ λμ΄ μ κ·Όν μ μλ€.
μ μ λ³μλ scope μΈλΆμ μμΉν λ³μμ΄λ©°, μ μΈλ μμ λΆν° νλ‘κ·Έλ¨μ΄ μ’ λ£λλ μκ°κΉμ§ λ©λͺ¨λ¦¬κ° μ μ§λμ΄ μ κ·Ό κ°λ₯νλ€.
λ©€λ² λ³μλ ν΄λμ€μ λ΄λΆμ μμΉν λ³μμ΄λ―λ‘, μΈμ€ν΄μ€λ₯Ό ν΅νκ±°λ ν΄λμ€ μ체λ₯Ό ν΅ν΄μ μ κ·Όν μ μλ€.
int global; // μ μλ³μ
void func()
{
int local = 10; // μ§μλ³μ
}
class abc
{
public:
abc();
~abc();
private:
int member; // λ©€λ² λ³μ
};
λ³μ μ΄κΈ°ν(Initialize)
int a; μ κ°μ΄ λ³μλ₯Ό μ μΈλ§ νμ λ aμ κ°μ 무μλ―Έν μ°λ κΈ°κ°μ΄ λ€μ΄μλ€. λ°λΌμ μ΄κΈ°νλ₯Ό ν΄μ£Όμ΄μΌ νλλ° μ΄κΈ°νμ λ°©λ²μ ν λΉκ³Ό μ μΈλ μ¦μ μ΄κΈ°νκ° μλ€.
int x;
x = 3; // ν λΉ
int x = 3; // μ μΈκ³Ό λμμ μ΄κΈ°ν
νμκ° λ κΉλνκ³ , μμ£Ό μ°μΈλ€.
L-Valueμ R-Value
double dVal = 3.14;
λμ μ°μ°μλ₯Ό κΈ°μ€μΌλ‘ λ³΄ν΅ μΌμͺ½μ μμΉνλ©΄μ, λ©λͺ¨λ¦¬λ₯Ό κ°μ§ κ°μ L-ValueλΌκ³ νλ€. μ μ½λμμλ dVal λ³μκ° L-Valueμ΄λ€.
R-Valueλ λμ μ°μ°μλ₯Ό κΈ°μ€μΌλ‘ λ³΄ν΅ μ€λ₯Έμͺ½μ μμΉνλ©΄μ, λ©λͺ¨λ¦¬λ₯Ό κ°μ§μ§ μλ κ°μ R-ValueλΌκ³ νλ€. μ μ½λμμλ 3.14κ° R-Valueμ΄λ€.
L-Valueλ μμ΄ λλλ λ©λͺ¨λ¦¬κ° μ μ§λμ§λ§, R-Valueλ λ©λͺ¨λ¦¬μ κ΄λ ¨μλ μΌμμ μΈ κ°μ΄λΌκ³ ν μ μλ€.
int a = b;
λ¬Όλ‘ μμ μ’μ°κ° λͺ¨λ L-ValueμΌ μλ μλ€. κΈ°μ΅ν΄μΌ ν κ²μ λ©λͺ¨λ¦¬λ₯Ό κ°μ§ κ°μ L-Valueμ΄κ³ κ°μ§μ§ μλ κ°μ R-ValueμΈ κ²μ΄λ€.
// μΆνμ R-Value Referenceκ° λμ€λλ°, R-Valueμ κ°λ μ΄ νλ€λ¦΄ μλ μλ€~~
'νλ‘κ·Έλλ° μΈμ΄ > C++ κΈ°μ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C/C++] 4. λ°λ³΅λ¬Έ(Iteration statements) - forλ¬Έ(for loop) (0) | 2021.03.29 |
---|---|
[C/C++] 3. 쑰건문(Conditional statement) (0) | 2021.03.18 |
[C/C++] 2. νμ κ³Ό μ°μ°μ(Type & Operator) (0) | 2021.03.12 |
[C/C++] 0. μ€ννμΌμ΄ λ§λ€μ΄μ§λ ꡬ쑰(feat. μ»΄νμΌλ¬) (0) | 2021.03.10 |
[C/C++] κΈ μμ±μ κ΄νμ¬ (0) | 2021.03.09 |
λκΈ