當前位置:網站首頁>【引用技術】

【引用技術】

2022-01-27 13:24:50 潜行~

一、C++裏的引用技術

概念:引用是創建一個變量的引用名稱

二、使用

1.語法

數據類型& 變量名稱{引用對象的名稱}

int a{
    500};
int& b{
     a };

b = 5200;
相當於a = 5200;
特點:
引用一定要初始化,否則編譯器會報錯!

2.注意事項

(1)賦值問題

(2)數據類型和引用類型要一致

int main(int argc, char* argv[])
{
    
	const int a = 1;
	const int& c{
     a };
	int b{
     255 };
	int& d{
     b };
	d = a;//b = a;
}

3.特點

  • 可以用.代替指針的->
  • 傳遞參數前不需要用取址運算符&,傳遞參數後不需要用*運算符就可以賦值

4.使用場景:函數裏的參數

int Add(int& a, int& b) {
    
	a *= 10;
	return a + b;
}

void Cout(int num) {
    
	std::cout << num << std::endl;
}
int main(int argc, char* argv[])
{
    
	int a = 1, b = 2;
	Cout(Add(a, b));
}

5.引用的本質

一種被閹割了的指針,雖然我們取址引用變量得到的是原值的內存地址,但是引用變量也是占用內存的

	int a = 5;
00F94B38 C7 45 F8 05 00 00 00 mov         dword ptr [ebp-8],5  
	a = 5;
00F94B3F C7 45 F8 05 00 00 00 mov         dword ptr [ebp-8],5  
	int& b = a;
00F94B46 8D 45 F8             lea         eax,[ebp-8]  
00F94B49 89 45 EC             mov         dword ptr [ebp-14h],eax  
	int& c = a;
00F94B4C 8D 45 F8             lea         eax,[ebp-8]  
00F94B4F 89 45 E0             mov         dword ptr [ebp-20h],eax  
	int* d = &a;

版權聲明
本文為[潜行~]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271324499555.html

隨機推薦