日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++詳細講解引用類型_C 語言

作者:南森森 ? 更新時間: 2022-09-06 編程語言

一、C++中的引用類型

在以嚴蔚敏老師的《數據結構》為代表的諸多數據結構的書中,都出現了C++引用這一用法,所以在學習數據結構的過程中,有必要認識一下C++語言中的這一用法。

思考:如何在被調函數中修改主調函數中定義的變量的值?

先來看看C語言怎么實現:

#include <stdio.h>
void modify(int* p) // 由于要接收整型變量的地址,所以p定義為整形指針變量
{
	(*p) = 5; // 因為p接收了main函數中i變量的地址,故此時的*p就是main函數中的變量i
}
int main()
{
	int i = 10; // 在main函數中定義的整型變量i
	modify(&i); // 如果想要通過modify函數修改main函數中變量i的值,就只能發送變量i的地址
	printf("%d\n", i);
	return 0;
}

但在C++語言中,想要在被調函數中修改主調函數中定義的變量的值時,不需要將其地址傳輸給被調函數,直接傳輸變量即可,但需要注意的是,被調函數的形參類型必須為引用類型,否則就無法達到修改主調函數中變量的值的目的。以下面的程序為例:

#include <stdio.h>
void modify(int& p) // 形參為引用類型
{
	p = 5; 
	// 此時的p就是就是main中的i
	// 給p賦值相當于給main函數中的i賦值
}
int main()
{
	int i = 10; // 在main函數中定義的整型變量i
	modify(i);
	// 在C++程序中,只需要傳輸變量名即可在modify中修改i的值
	// 但前提是,modify函數的形參必須是引用類型
	printf("%d\n", i);
	return 0;
}

此外,C++程序文件的后綴不同于C程序文件的后綴,在創建文件時,記得要將文件名后綴改為改為.cpp。

二、如何使用C++中的引用類型

在使用C++引用之前。首先要考慮的是,需不需要在被調函數中修改主調函數中變量的值?

如果需要修改則才需要將將被調函數的形參改為引用類型,如果不需要修改則不需要將被調函數的形參改為引用類型。

使用方法

先看要修改的變量是什么類型,要修改的變量是什么類型形參就先寫什么類型,例如:主調函數中要修改的變量為int類型,則形參先寫類型就先寫int;然后在剛寫的形參類型后加&

牛刀小試:使用C++引用在modify函數中修改main函數中的指針變量p的值

#include <stdio.h>
#include <malloc.h>
void modify(int*& q) // 要修改的變量的類型為int *,則形參為int*& 
{
	q = (int *)malloc(sizeof(int)); 
	// 此時的q就是main函數中的p
	// 給q賦值相當于給main函數中的p賦值
}
int main()
{
	int * p;
	modify(p); // 不需要傳輸地址,直接發送變量即可
	return 0;
}

上述程序用C語言實現如下:

#include <stdio.h>
#include <malloc.h>
void modify(int** q) // 由于要接收指針變量的地址,所以形參必須為二級指針
{
	*q = (int *)malloc(sizeof(int));
	// 由于q接收了main函數中p的地址,則q就指向了p
	// 此時的*q就是main函數中的p變量,給*q賦值就是給p賦值
}
int main()
{
	int * p;
	modify(&p); 
	// 要在modify函數中修改變量p的值,不管變量p是什么類型的變量,都只能通過傳輸p的地址來修改
	return 0;
}

通過上面兩個程序可以看出,C++引用屏蔽了C語言中二級指針的內容,但C++引用的本質還是指針,所以學好C語言中的指針是很重要的。如果對指針的知識不太了解,可以看看C語言指針知識,當然也可以查閱相關C語言書籍中指針相關部分的內容。

原文鏈接:https://blog.csdn.net/weixin_65334260/article/details/125728078

欄目分類
最近更新