C++
[C++] l-value์ฐธ์กฐ, r-value์ฐธ์กฐ
carsumin
2024. 10. 7. 21:27
์ฐธ์กฐ
- ์ด๋ค ๋์์ ๊ฐ๋ฆฌํค๋ ๊ฐ
- ์ฐธ์กฐ ๋ณ์๋ ์ด๊ธฐํ๋ฅผ ํตํด ๋ฐ๋์ ์ด๋ค ๋์์ ์ฐธ์กฐํด์ผ ํจ
const ์ฐธ์กฐ
- ์ฐธ์กฐ ๋ณ์๊ฐ ์ฐธ์กฐํ๋ ๋์์ ๊ฐ์ ๋ฐ๊ฟ ์ ์์
int x { 10 };
const int& xRef = x;
cout << xRef << endl;
xRef += 10; // ์ค๋ฅ : const ์ฐธ์กฐ๋ก ๊ฐ ์์ ๋ถ๊ฐ
l-value ์ฐธ์กฐ
- ์ค์ฒด๊ฐ ์๋ ๋์์ ๋ํ ์ฐธ์กฐ
// l-value ์ฐธ์กฐ ๋ณ์์ ์ ์ธ ํ์
// TypeName : ์ฐธ์กฐ ๋์์ ์๋ฃํ
// refVar : ์ฐธ์กฐ ๋ณ์์ ์ด๋ฆ
// varName : ์ฐธ์กฐ ๋์
TypeName& refVar = varName;
l-value ์ฐธ์กฐ ๋ณ์ ์์
int a = 10, b = 20;
int& aRef = a;
cout << aRef << endl;
aRef = 100;
aRef = b;
// a = 20, b = 20, a์ ์ฐธ์กฐ = aRef
r-value ์ฐธ์กฐ
- ์ฌ์ฉํ ํ์๋ ๊ทธ ๊ฐ์ ๋ ์ด์ ๊ฐ์ง๊ณ ์์ ํ์์๋ ๋์์ ์ฐธ์กฐ
- ๊ฐ์ฒด์ ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ฒด๋ก ์ด๋ํ๋ ์ฉ๋๋ก ์ฌ์ฉ