ν¨μμ 맀κ°λ³μ μ λ¬ ννλ ν¬κ² λκ°μ§μ λ°©λ²μΌλ‘ μ 리 ν μ μλλ°μ~
μ€λμ call by value μ call by reference κ° λ¬΄μμΈμ§ μμ보λλ‘ νκ² μ΅λλ€!
μΌλ¨ λμ ν° μ°¨μ΄λΌ νλ©΄
' κ°μ κ·Έλλ‘ λ³΅μ¬νμ¬ μ²λ¦¬λ₯Ό νλλ, νΉμ μ§μ μ°Έμ‘°λ₯Ό νλλ' μ λμΈλ°μ!
νλμ© μμΈν μμ보λλ‘ ν κ²μ!
Call by value [κ°μ μν νΈμΆ / κ° μ λ¬ λ°©μ]
λ―Έν‘ν μ€λ ₯μ΄μ§λ§ μ€λͺ
μ λκΈ° μν΄ κ°λ¨ν κ·Έλ¦ΌμΌλ‘ κ·Έλ €λ΄€μ΄μ!
μ΄λ κ² κ°μ μ λ¬ νλ λ°©μμ call by value λ°©μμ΄λΌκ³ ν©λλ€.
μ΄ λ°©μμ μ€λ§€κ° λ³μμ "κ°"λ§ νμ맀κ°λ³μλ‘ μ λ¬μ΄ λλ―λ‘
νμ 맀κ°λ³μλ§ λ³κ²½μ΄ κ°λ₯νκ³ , μ€ λ§€κ°λ³μμλ μ κ·Όμ΄ λΆκ°λ₯ ν©λλ€.
μ€ λ§€κ°λ³μμ νμ 맀κ°λ³μλ μ κ·Έλ¦Όμ "ex" μ²λΌ κ° λ€λ₯Έ λ³μλ‘ μ·¨κΈλλ―λ‘ μλ‘ λ€λ₯΄λ€κ³ ν μ μμΌλ©°
νμ 맀κ°λ³μμ κ°μ΄ λ³κ²½ λλ€κ³ ν΄μ μ§μ μ μΌλ‘ κ°μ 볡μ¬ν΄μ€ μ€ λ§€κ°λ³μμ μν₯μ λ―ΈμΉλ κ²μ΄ μλκΈ° λλ¬Έμ
λνμ μΈ ν¨μνΈμΆμ μμμΈ swap() ν¨μμμλ κ°μ΄ λ°λμ§ μκ³ swap ν¨μ λ΄μμλ§ μμ© ν©λλ€.
μ¦ μμ κ·Έλ¦Ό "ex2" μμ μ²λΌ aμ κ°μ 20, bμ κ°μ 30 μΌλ‘ μ£Όκ³ swap ν¨μλ‘ λμ΄κ°
κ°μ λ°κΏλ swap ν¨μ λ΄μμλ§ λ°λ λΏ
λ€μ main ν¨μλ‘ λμκ°λ©΄, κ·Έ κ°μ μλ main ν¨μμ κ° κ·Έλλ‘λ₯Ό μΆλ ₯ ν κ²μ
λλ€.
Call by reference [μ°Έμ‘°μ μν νΈμΆ / μ£Όμ κ° μ λ¬ λ°©μ]
μ΄λ κ² μ£Όμλ₯Ό μ λ¬ νλ λ°©μμ call by reference λ°©μμ΄λΌκ³ ν©λλ€.
μ΄ λ°©μμ μ€λ§€κ° λ³μ μ¦ νΈμΆνλ μͺ½μ μ£Όμκ°μ νΈμΆνμ¬
ν¨μμ νμ 맀κ°λ³μμ μ λ¬νλ λ°©μμΌλ‘ μ£Όμλ₯Ό μκ³ μκ³ μ κ·Ό νκΈ° λλ¬Έμ
μ€ λ§€κ° λ³μμ κ°μ λ³κ²½ ν μ μμ΅λλ€.
λν μμ κ·Έλ¦Ό "ex" μ²λΌ λμ λμΌν κΈ°μ΅κ³΅κ°μ μ¬μ©νλ λ³μμ΄λ©°,
ν¨μνΈμΆμ μμμΈ swap() ν¨μ μ¦ "ex2" κ·Έλ¦Όμ μ°Έκ³ νμ¬ λ³΄λ©΄
swap ν¨μ λ΄μμ λΏλ§ μλλΌ main ν¨μμμλ κ΅μ²΄κ° μ΄λ£¨μ΄ μ§λ κ²μ νμΈ νμ€ μ μμ΅λλ€.
μ¦ call by reference λ°©μμ μ΄μ©νλ©΄ κ°μ λ³κ²½μ λ©λͺ¨λ¦¬μμ κ°λ λ³κ²½λ¨μ μ μ μμ§μ!
CμΈμ΄λ μμ κ°μ λ°©μμ λ°λ‘ μ§μ νμ§ μλλ€κ³ ν©λλ€.
μλ°ν λ°μ§λ©΄ μ£Όμκ° μ체λ₯Ό λ³΅μ¬ ν΄μ λ겨주λ―λ‘
call by valueμͺ½μ κ°κΉλ€κ³ ν©λλ€ (= call by address)
κ·Έλ κΈ° λλ¬Έμ κ²°κ³Όμ μΌλ‘ call by address λ₯Ό μ΄μ©νμ¬ call by reference μ κ°μ΄, μ¬μ©μ΄ κ°λ₯νμ¬
κ°μ μλ―Έλ‘ κ·Έλ₯ μ¬μ©λλ κ²μ΄λΌκ³ ν©λλ€.
β» ν¬μΈν°(*) λ₯Ό μ¬μ©νμ¬ μ°Έμ‘°μ μν νΈμΆ λ°©μ μ¬μ©
Call by value
βΆ μ₯μ : 볡μ¬νμ¬ μ²λ¦¬νκΈ° λλ¬Έμ, μλμ κ°μ΄ λ³΄μ‘΄μ΄ λμ΄ μμ νλ€. (μλ³Έ λ°μ΄ν° λ³κ²½ κ°λ₯μ± x)
βΆ λ¨μ : μΈμλ₯Ό λκ²¨μ€ λ λ§λ€ λ©λͺ¨λ¦¬ 곡κ°μ ν λΉ νλ―λ‘ κ³΅κ°μ μλΉλ (μ¦ λ©λͺ¨λ¦¬ μ¬μ©λ) μ΄ λμ΄λλ€.
Call by reference
βΆ μ₯μ : λ©λͺ¨λ¦¬ 곡κ°μ ν λΉ λ¬Έμ κ° μλ€. (λ©λͺ¨λ¦¬ μλΉ x)
βΆ λ¨μ : μλ³Έμ λ°μ΄ν°λ₯Ό νΌμ ν μκ° μλ€.
μ΄λ κ² !
Call by value μ reference μ λν΄ μ€λͺ
μ λλ Έλλ°μ!
μ΄λ°μμΌλ‘ μ£Όμκ°μ μ λ¬ νμ¬,
addν¨μ, sub ν¨μ λ±λ± ..::ν¨μλ€μ νΈμΆνμ¬ μ°μ°νλ νλ‘κ·Έλ¨μ
μ‘°λ§κ° λ§λ€μ΄ κ°μ Έμ€λλ‘ ν κ²μ γ
γ
μ€λͺ
μ΄ λ―Έν‘νμ§λ§ λ€λ€! μ΄μ¬ν 곡λΆν΄λ΄μ ^_^: