最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2022年07月14日 10:32:47   作者:南森森  
引用指的是對(duì)一個(gè)對(duì)象的引用。那么什么是對(duì)象?在c++中狹義的對(duì)象指的是用類,結(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)識(shí)一下C++語言中的這一用法。

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

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

#include <stdio.h>
void modify(int* p) // 由于要接收整型變量的地址,所以p定義為整形指針變量
{
	(*p) = 5; // 因?yàn)閜接收了main函數(shù)中i變量的地址,故此時(shí)的*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ù)中定義的變量的值時(shí),不需要將其地址傳輸給被調(diào)函數(shù),直接傳輸變量即可,但需要注意的是,被調(diào)函數(shù)的形參類型必須為引用類型,否則就無法達(dá)到修改主調(diào)函數(shù)中變量的值的目的。以下面的程序?yàn)槔?/p>

#include <stdio.h>
void modify(int& p) // 形參為引用類型
{
	p = 5; 
	// 此時(shí)的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)建文件時(shí),記得要將文件名后綴改為改為.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)); 
	// 此時(shí)的q就是main函數(shù)中的p
	// 給q賦值相當(dāng)于給main函數(shù)中的p賦值
}
int main()
{
	int * p;
	modify(p); // 不需要傳輸?shù)刂?,直接發(fā)送變量即可
	return 0;
}

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

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

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

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

相關(guān)文章

  • C語言面試常見考點(diǎn)排序總結(jié)

    C語言面試常見考點(diǎn)排序總結(jié)

    深處開發(fā)崗,其實(shí)排序也是繞不開的環(huán)節(jié),其中冒泡排序,選擇排序,插入排序,歸并排序,快速排序,堆排序也是我在秋招以來頻繁問到的技術(shù)點(diǎn),今天我們來重點(diǎn)聊聊排序
    2021-11-11
  • C語言實(shí)現(xiàn)簡單五子棋游戲

    C語言實(shí)現(xiàn)簡單五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 一起聊聊C++中的智能指針

    一起聊聊C++中的智能指針

    C++?是手工管理內(nèi)存的分配和釋放,這給了程序員極大的自由度也給了我們極高的門檻,弄不好就得內(nèi)存泄露。使用智能指針能更好的管理堆內(nèi)存,本文主要給大家介紹一下c++的智能指針,需要的朋友可以參考下
    2022-07-07
  • 深入分析C++中兩個(gè)大數(shù)相乘結(jié)果不正確的問題

    深入分析C++中兩個(gè)大數(shù)相乘結(jié)果不正確的問題

    本篇文章是對(duì)C++中兩個(gè)大數(shù)相乘結(jié)果不正確的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • opencv3/C++實(shí)現(xiàn)光流點(diǎn)追蹤

    opencv3/C++實(shí)現(xiàn)光流點(diǎn)追蹤

    今天小編就為大家分享一篇opencv3/C++實(shí)現(xiàn)光流點(diǎn)追蹤,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C語言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    C語言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要介紹了C語言結(jié)構(gòu)體鏈表和指針實(shí)現(xiàn)學(xué)生管理系統(tǒng),包括學(xué)生檔案管理子系統(tǒng)和學(xué)生成績管理子系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 淺析bilateral filter雙邊濾波器的理解

    淺析bilateral filter雙邊濾波器的理解

    這篇文章主要介紹了bilateral filter雙邊濾波器的通俗理解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • C語言實(shí)現(xiàn)簡單貪吃蛇小游戲

    C語言實(shí)現(xiàn)簡單貪吃蛇小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • C++歸并排序算法詳解

    C++歸并排序算法詳解

    大家好,本篇文章主要講的是C++歸并排序算法詳解,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 一篇文章帶你入門C語言:函數(shù)

    一篇文章帶你入門C語言:函數(shù)

    這篇文章主要介紹了C語言中函數(shù)的聲明、定義及使用的入門教程,重點(diǎn)講述了main函數(shù)的相關(guān)知識(shí),需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08

最新評(píng)論

诸暨市| 临夏县| 江山市| 那曲县| 宝应县| 东方市| 彩票| 九台市| 娱乐| 班戈县| 皋兰县| 南乐县| 平乐县| 青岛市| 马关县| 张家界市| 和田县| 垣曲县| 泾川县| 昂仁县| 文登市| 河西区| 临桂县| 杭锦旗| 昭觉县| 枣阳市| 潍坊市| 宝鸡市| 汉阴县| 通辽市| 东海县| 新巴尔虎左旗| 宁明县| 南涧| 府谷县| 射洪县| 康定县| 蒲江县| 灵丘县| 武安市| 沈阳市|