亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++詳細(xì)講解引用類型

 更新時間:2022年07月14日 10:32:47   作者:南森森  
引用指的是對一個對象的引用。那么什么是對象?在c++中狹義的對象指的是用類,結(jié)構(gòu),聯(lián)合等復(fù)雜數(shù)據(jù)類型來聲明的變量,如?MyClass?myclass,CDialog?mydlg,等等

一、C++中的引用類型

在以嚴(yán)蔚敏老師的《數(shù)據(jù)結(jié)構(gòu)》為代表的諸多數(shù)據(jù)結(jié)構(gòu)的書中,都出現(xiàn)了C++引用這一用法,所以在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的過程中,有必要認(rèn)識一下C++語言中的這一用法。

思考:如何在被調(diào)函數(shù)中修改主調(diào)函數(shù)中定義的變量的值?

先來看看C語言怎么實現(xiàn):

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

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

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

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

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

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

如果需要修改則才需要將將被調(diào)函數(shù)的形參改為引用類型,如果不需要修改則不需要將被調(diào)函數(shù)的形參改為引用類型。

使用方法

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

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

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

上述程序用C語言實現(xiàn)如下:

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

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

到此這篇關(guān)于C++詳細(xì)講解引用類型的文章就介紹到這了,更多相關(guān)C++引用類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言字符串?dāng)?shù)組詳解

    C語言字符串?dāng)?shù)組詳解

    這篇文章主要介紹了C語言字符串?dāng)?shù)組詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 復(fù)數(shù)乘法中的結(jié)構(gòu)體賦值實現(xiàn)代碼

    復(fù)數(shù)乘法中的結(jié)構(gòu)體賦值實現(xiàn)代碼

    復(fù)數(shù)乘法中的結(jié)構(gòu)體賦值實現(xiàn)代碼。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • C++實現(xiàn)將輸入的內(nèi)容輸出到文本文件

    C++實現(xiàn)將輸入的內(nèi)容輸出到文本文件

    這篇文章主要介紹了C++實現(xiàn)將輸入的內(nèi)容輸出到文本文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 一文弄懂C語言如何實現(xiàn)單鏈表

    一文弄懂C語言如何實現(xiàn)單鏈表

    單鏈表是由多個結(jié)點鏈接組成,它的每個結(jié)點包含兩個域,一個數(shù)據(jù)域和一個鏈接域(地址域),下面這篇文章主要給大家介紹了關(guān)于C語言如何實現(xiàn)單鏈表的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • C語言循環(huán)語句之重復(fù)執(zhí)行特定的代碼塊

    C語言循環(huán)語句之重復(fù)執(zhí)行特定的代碼塊

    在C語言中分支和循環(huán)語句是實現(xiàn)條件執(zhí)行和重復(fù)執(zhí)行的重要工具,下面這篇文章主要給大家介紹了關(guān)于C語言循環(huán)語句之重復(fù)執(zhí)行特定的代碼塊的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • C語言中的strlen()和sizeof()對比分析

    C語言中的strlen()和sizeof()對比分析

    這篇文章主要介紹了C語言中的strlen()和sizeof()區(qū)別對比,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • C++面經(jīng)之什么是RAII面試問題解析

    C++面經(jīng)之什么是RAII面試問題解析

    這篇文章主要介紹了C++面經(jīng)之什么是RAII面試問題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • C語言文件操作 fopen, fclose, mkdir詳解

    C語言文件操作 fopen, fclose, mkdir詳解

    本文給大家詳細(xì)介紹了下C語言的文件操作函數(shù)fopen, fclose, mkdir的用法及示例,非常的簡單實用,有需要的小伙伴可以參考下。
    2016-03-03
  • C++中雙冒號::的作用淺析

    C++中雙冒號::的作用淺析

    在C++中經(jīng)常使用雙冒號::,很多朋友不知道是什么意思,這篇文章主要介紹了C++中雙冒號::的作用,需要的朋友可以參考下
    2018-06-06
  • C語言動態(tài)內(nèi)存分配和內(nèi)存操作函數(shù)使用詳解

    C語言動態(tài)內(nèi)存分配和內(nèi)存操作函數(shù)使用詳解

    但是在實際的編程中,往往會發(fā)生這種情況,即所需的內(nèi)存空間取決于實際輸入的數(shù)據(jù),而無法預(yù)先確定 。為了解決上述問題,C語言提供了一些內(nèi)存管理函數(shù),這些內(nèi)存管理函數(shù)可以按需要動態(tài)的分配內(nèi)存空間,也可把不再使用的空間回收再次利用
    2022-12-12

最新評論