π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[κ°μ²΄μ μ°Έμ‘°, λ³΅μ¬ μμ±μ] ν¨μμ μΈμ μ λ¬ λ°©μ λ³Έλ¬Έ
[κ°μ²΄μ μ°Έμ‘°, λ³΅μ¬ μμ±μ] ν¨μμ μΈμ μ λ¬ λ°©μ
μ§μ§μνμΉ΄ 2024. 2. 24. 00:09<ν©κΈ°ν λμ λͺ ν C++ Programming μμ μ μ°Έκ³ ν΄μ μμ±νμμ΅λλ€ :-)>
π ν¨μμ μΈμ μ λ¬ λ°©μ
βοΈ 1) κ°μ μν νΈμΆ (call by value)
νΈμΆνλ μ½λμμ λ겨주λ μ€μΈμ κ°μ΄ ν¨μμ λ§€κ° λ³μμ 볡μ¬λμ΄ μ λ¬λλ λ°©μ
μ€μΈμμ κ°μ 볡μ¬νμ¬ μ λ¬νλ―λ‘, ν¨μ λ΄μμ μ€μΈμλ₯Ό μμμν¬ μ μλ μ₯μ μ΄ μλ€
λ§€κ° λ³μ a, b κ° swap() ν¨μμ μ€νμ μμ±λκ³ , m, n κ°μ΄ a, bμ 볡μ¬λλ€
aμ bκ°μ΄ μλ‘ κ΅νλκ³ , swap() ν¨μκ° μ’
λ£νλ©΄ swap() μ€νκ³Ό ν¨κ» a, b λ μ¬λΌμ§μ§λ§
main() μ€νμ m, n μ λ³ν¨μμ΄ 2, 9 κ°μ μ μ§νλ€
// κ°μ μν νΈμΆλ‘ swap ν¨μ νΈμΆ
#include <iostream>
using namespace std;
void swap(int a, int b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
}
int main()
{
int m = 2, n = 9;
swap(m, n);
cout << m << " " << n;
}
// 2 9
βοΈ 2) μ£Όμμ μν νΈμΆ (call by address)
μ£Όμλ₯Ό μ§μ ν¬μΈν° νμ
μ λ§€κ° λ³μμ μ λ¬λ°λ λ°©μ
ν¨μ νΈμΆ μ λ°°μ΄μ΄ μ λ¬λλ κ²½μ°, λ°°μ΄μ μ΄λ¦μ΄ μ λ¬λλ―λ‘ μμ°μ€λ½κ² μ£Όμμ μν νΈμΆμ΄ μ΄λ€μ§λ€
λ°°μ΄μ μ΄λ¦μ 곧 λ°°μ΄μ μ£Όμμ΄λ€
ν¬μΈν° λ§€κ° λ³μ a, bκ° swap() μ μ€νμ μμ±λκ³ , m, n μ μ£Όμκ° a, b μ μ λ¬λμ΄ ν¬μΈν° a, b λ m, n μ 곡κ°μ κ°κ° κ°λ¦¬ν¨λ€
swap() ν¨μμ μν΄ ν¬μΈν° a μ b κ° κ°λ¦¬ν€λ κ°μ΄ μλ‘ κ΅νλλ©΄, κ·Έ κ²°κ³Ό m κ³Ό n μ κ°μ΄ κ΅νλλ€
swap() ν¨μκ° μ’
λ£νλ©΄ a, b κ° μ¬λΌμ§κ³ main() μ€νμ m, n μ μλ‘ κ΅νλ μ± λ¨μμκ² λλ€
μ€μΈμμ μ£Όμλ₯Ό λκ²¨μ£Όμ΄ μλμ μΌλ‘ ν¨μ λ΄μμ μ€μΈμμ κ°μ λ³κ²½νκ³ μ ν λ μ΄μ©λλ€
// μ£Όμμ μν νΈμΆλ‘ swap ν¨μ νΈμΆ
#include <iostream>
using namespace std;
void swap(int *a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
int main()
{
int m = 2, n = 9;
swap(m, n);
cout << m << " " << n;
}
// 9 2