์ ์ด๊ฑฐ ๊ณ ๊ตฌ๋ง๊ฐ ์ถ๋ ฅ๋จ?
๋ด๊ฐ ์ดํดํ๊ฑด ์ด๊ฑด๋ฐ q๋ ํ์ ๊ณ ๊ตฌ๋ง๋ฅผ ์ฐธ์กฐํ๋๊น q์ ๊ฐ์ ๋ฐ๊พธ๋ฉด a์ ๊ฐ๋ ๋ณํด์ผ ํ๋๊ฑฐ ์๋?
์ ์ด๊ฑฐ ๊ณ ๊ตฌ๋ง๊ฐ ์ถ๋ ฅ๋จ?
๋ด๊ฐ ์ดํดํ๊ฑด ์ด๊ฑด๋ฐ q๋ ํ์ ๊ณ ๊ตฌ๋ง๋ฅผ ์ฐธ์กฐํ๋๊น q์ ๊ฐ์ ๋ฐ๊พธ๋ฉด a์ ๊ฐ๋ ๋ณํด์ผ ํ๋๊ฑฐ ์๋?
๊ฑ ๋ด๊ฐ ๋ณด๊ธฐ์ ๊ณ ๊ตฌ๋ง์ธ a๋ฅผ W๋ผ๋ ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ฃ์ด์ ๊ณ ๊ตฌ๋ง ๊ทธ๋๋ก ์ถ๋ ฅ๋๋ ๊ฑฐ ์ฒ๋ผ ๋ณด์ด๋๋ฐ? ๋ง์ฝ ๋ ๋ง๋๋ก ํ๋ ค๋ฉด W์์ a = g๋ฅผ ํด์ค์ผํ๋ ๊ฑฐ ์๋?
a=gํ๋ค๋๊ฒ ๋ฌด์จ ์๋ฏธ์ธ์ง? ํน์ ์์ ํด์ ๋ณด์ฌ์ค์ ์์ด?
๋ด๊ฐ ํ์ ๋ฑํ ์ง์ ์ ์ผ๋ก ์จ๋ณธ ์ ์ด ์์ด์ ํ๋ฆฐ ๊ฑธ ์๋ ์๊ธด ํ๋ฐ ์๋ง ์ด๋ ๊ฒ ํ๋ฉด ๋๊ฐ ์ํ๋ ๋๋ก๋ ๋์ง ์์๊น ์ถ์ public void W(string a) { g = "๊ฐ์"; a = g; }
https://yeko90.tistory.com/entry/c-%EA%B0%92-%ED%98%95%EC%8B%9D-%EC%B2%98%EB%9F%BC-%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94-string%EC%B0%B8%EC%A1%B0-%ED%98%95%EC%8B%9D
- dc App
์ด์ฐ ์ด๋ฐ ๊ฐ๋ ํ์์ ๊ธ์ ๋๋ฌด์ง ๋ชป ์์๋จน๊ฒ ๋๋ผ; ๋จธ๋ฆฌ ์ํ
์์งํ ์ด๋ฐ ์๋ฆฌ ๋ชจ๋ฅด๊ฒ ์ผ๋ฉด ๊ฑ ์ฝ๋ฉ์ผ๋ก ๋งจ๋ ํค๋ฉ์ด ๋ง์ ใ ใ
Object ๋ ๋๊ฐ์ ํ์์ด ์๋๊ฑฐ ๊ฐ์๋ฐ object๋ ๋ถ๋ณ์ธ๊ฐ์?
public void W(out string a) ๋ก "out" ํค์๋๋ฅผ ๋ฃ์ด์ค์ผํจ
out ์ด ์์ผ๋ฉด, W ํจ์๋ด์์๋ง ์ฐ๋ ๋ก์ปฌ ๋ณ์ string a ๋ฅผ ์๋ก ์์ฑํ๋ ๊ฒ์.
g์ ๊ฐ์๋ฅผ ๋ฃ์ผ๋ฉด ๊ณ ๊ตฌ๋ง๊ฐ ๊ฐ์๋ก ๋ฐ๋๋๊ฒ ์๋๋ผ ๊ฐ์๊ฐ ์๋ก ์๊ธฐ๊ณ g๋ ๊ทธ๊ฑธ ์ฐธ์กฐํจ ๊ทธ๋์ ๊ณ ๊ตฌ๋ง๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ a๋ ์ํฅ์ด ์์
C#์ ์ฐธ์กฐ ํ์์ ๋งค๊ฐ๋ณ์๋ก ๋๊ธฐ๋๋ผ๋ ํด๋น ์ฝ๋์ ์ฃผ์๋ฅผ ๋ณต์ฌํด์ ๋์ด๊ฐ a, q (Stack) "๊ณ ๊ตฌ๋ง" (Heap) W์ q๋ a์ ์ฃผ์๋ฅผ ๋ณต์ฌํด์ ์คํ์ ์๋ก ํ ๋นํ๋๋ฐ, q์ ์ฃผ์๋ฅผ ๊ฐ์๋ก ๋ฐ๊พผ๋ค ํจ์๋ฅผ ๋น ์ ธ๋๊ฐ๋ฉด q๋ ์ฌ๋ผ์ง๊ฒ ๋๊ณ , a๋ ์ฌ์ ํ ๊ทธ๋๋ก ์กด์ฌํ๊ฒ ๋จ ๋ณ์์ ์ฃผ์ ์์ฒด๋ฅผ ๋๊ธฐ๊ณ ์ถ๋ค๋ฉด ref ๋ถ์ฌ์ผํจ - dc App