国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++函數(shù)中的指針參數(shù)與地址參數(shù)區(qū)別的詳細(xì)分享

2020-02-24 14:37:55
字體:
供稿:網(wǎng)友

  比如 一個(gè)函數(shù) chat(link &a); chat(ling *a); 前者引入一個(gè)地址做形參 是不是可以把一個(gè)指針變量p。。 這么用chat(p); 那跟第二個(gè)函數(shù)有什么區(qū)別呢?都是傳地址啊。。 弄不明白~~那接下來一起來看看c++函數(shù)中的指針參數(shù)與地址參數(shù)區(qū)別的詳細(xì)分享吧。

  chat(int&a); chat(int *a); 這兩個(gè)函數(shù)是完全不同意義的東西,你的理解主要是在int&a和int* a這個(gè)類型上面。要注意int&和int*是兩個(gè)完全不同的類型。int&是引用類型,而int*是指向int類型變量的指針類型。 void chat(int&a) { a=20; } 調(diào)用此函數(shù): int x=100; chat(x); // 此時(shí)x的值變?yōu)?0了 如果函數(shù)如下: void chat (int*a) { *a=20; } 調(diào)用: int x=10; chat(&x); //此時(shí)x的值也會(huì)變?yōu)?0; 這是他們有聯(lián)系的地方,也就是他們都可以在函數(shù)里面改變外面變量的值,但是這兩個(gè)的參數(shù)傳遞方式是不一樣的void chat(int&a)這個(gè)函數(shù)是引用傳遞,而void chat(int*a);這個(gè)函數(shù)是值傳遞(雖然其傳遞的值是地址值,但是還是值傳遞)。 這個(gè)引用類型應(yīng)該怎么理解呢? 我是這樣理解的:int a=100;那么a到底是個(gè)什么東西,我們說a使我們定義的一個(gè)變量,那么變量又是個(gè)什么東西呢,不知道你有沒有想過,我們不談編譯原理,但是你可以將a看成是這么一個(gè)東西,a代表了一塊內(nèi)存空間,注意:是一塊內(nèi)存空間,也就是說這一塊內(nèi)存空間可能由一個(gè)或多個(gè)字節(jié)組成,那么在VC++6.0中,int類型的變量占4個(gè)字節(jié),所以a代表了4個(gè)字節(jié)的連續(xù)的內(nèi)存空間。那么int &b=a;定義了這一句之后,b和a一樣都代表了那4個(gè)字節(jié)的內(nèi)存空間了。再看看int *c=&a;此時(shí)c是什么呢?c也代表了一塊內(nèi)存空間,在VC ++6.0中int*類型的變量占4個(gè)字節(jié)的內(nèi)存空間,所以c代表了一個(gè)連續(xù)的4個(gè)字節(jié)的內(nèi)存空間,在其內(nèi)部放的值就是a代表的那塊內(nèi)存空間的第一個(gè)字節(jié)的地址值。 所以我們向chat(int&a)傳遞參數(shù)的時(shí)候例如chat(x)此時(shí)a與x同樣代表一塊內(nèi)存空間,而chat(int*a)調(diào)用的時(shí)候:chat(&x);此時(shí)a里面的值就是&x,也就是x代表的內(nèi)存的首地址。 所以你要明白,他們不是傳遞的都是地址!!!!! 在C++中地址和引用不是一個(gè)東西!!!

  以上所述就是c++函數(shù)中的指針參數(shù)與地址參數(shù)區(qū)別的詳細(xì)分享的介紹,希望大家能夠喜歡,更多內(nèi)容請(qǐng)繼續(xù)關(guān)注武林技術(shù)頻道網(wǎng)站!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 菏泽市| 遵义县| 恩施市| 三门县| 兴化市| 尼勒克县| 泸溪县| 蒙阴县| 山丹县| 珠海市| 湖南省| 长沙市| 漳州市| 武汉市| 阳新县| 微博| 荃湾区| 湖北省| 会东县| 泗洪县| 柳江县| 石门县| 新绛县| 方城县| 城步| 无锡市| 高要市| 武宣县| 宝鸡市| 米泉市| 永春县| 高淳县| 科技| 介休市| 兴仁县| 黄冈市| 南岸区| 平顺县| 青岛市| 青田县| 敖汉旗|