[C++] Call by value와 Call by reference

2020. 5. 14. 18:41Β·πŸ“ Language/✏ C & C++

Call by value

  • 값에 μ˜ν•œ 호좜
  • ν•¨μˆ˜ 호좜 μ‹œ 인자둜 λ³€μˆ˜μ˜ 볡사 값을 μ „λ‹¬ν•œλ‹€. μ΄λ•Œ λ³΅μ‚¬λœ μΈμžλŠ” ν•¨μˆ˜ μ•ˆμ—μ„œ μ§€μ—­μ μœΌλ‘œ μ‚¬μš©λ˜κΈ° λ•Œλ¬Έμ— local value의 속성을 κ°€μ§„λ‹€. λ”°λΌμ„œ ν•¨μˆ˜ μ•ˆμ—μ„œ 인자 값이 λ³€κ²½λ˜λ”λΌλ„ μ•„κ·œλ¨ΌνŠΈ(argument)λŠ” λ³€κ²½λ˜μ§€ μ•ŠλŠ”λ‹€.
  • λ©”λͺ¨λ¦¬ κ³΅κ°„μ—μ„œλŠ” λ³„λ„μ˜ μž„μ‹œ 곡간에 μƒμ„±λ˜λ―€λ‘œ ν•¨μˆ˜ μ’…λ£Œ μ‹œ 사라진닀.

 

Call by reference

  • 참쑰에 μ˜ν•œ 호좜
  • ν•¨μˆ˜ 호좜 μ‹œ 인자둜 λ³€μˆ˜μ˜ 레퍼런슀λ₯Ό μ „λ‹¬ν•œλ‹€. λ”°λΌμ„œ ν•¨μˆ˜ μ•ˆμ—μ„œ 인자 값이 λ³€κ²½λ˜λ©΄ μ•„κ·œλ¨ΌνŠΈλ‘œ μ „λ‹¬λœ 객체의 값도 λ³€κ²½λœλ‹€.
  • μ„ μ–Έκ³Ό λ™μ‹œμ— μ΄ˆκΈ°ν™”ν•΄μ•Ό ν•˜κ³  μ΄ˆκΈ°ν™”λœ ν›„μ—λŠ” λ‹€λ₯Έ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•  수 μ—†λ‹€.

 

#include <iostream>
using namespace std;

void func_by_value(int a, int b)
{
	int temp = a;
	a = b;
	b = temp;
}

void func_by_ref(int& a, int& b)
{
	int temp = a;
	a = b;
	b = temp;
}

int main(void)
{
	int a = 10, b = 20;

	func_by_value(a, b);
	cout << a << ' ' << b << endl;
	func_by_ref(a, b);
	cout << a << ' ' << b << endl;
}

// 좜λ ₯
// 10 20
// 20 10
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Language/✏ C & C++' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [C++] 정적(Static) 멀버 λ³€μˆ˜μ™€ ν•¨μˆ˜
  • [C++] 얕은 볡사(Shallow Copy)와 κΉŠμ€ 볡사(Deep Copy)
  • [C++] μ˜€λ²„λ‘œλ”©(Overloding)κ³Ό μ˜€λ²„λΌμ΄λ”©(Overriding)
  • [C++] STL μ»¨ν…Œμ΄λ„ˆ(Containers)
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
[C++] Call by value와 Call by reference
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”