筆記01:C++形參與實(shí)參的區(qū)別

形參出現(xiàn)在函數(shù)定義中,在整個(gè)函數(shù)體內(nèi)都可以使用抢蚀, 離開該函數(shù)則不能使用。實(shí)參出現(xiàn)在主調(diào)函數(shù)中镰禾,進(jìn)入被調(diào)函數(shù)后,實(shí)參變量也不能使用唱逢。 形參和實(shí)參的功能是作數(shù)據(jù)傳送吴侦。發(fā)生函數(shù)調(diào)用時(shí), 主調(diào)函數(shù)把實(shí)參的值傳送給被調(diào)函數(shù)的形參從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送坞古。

1.形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元备韧,在調(diào)用結(jié)束時(shí), 即刻釋放所分配的內(nèi)存單元痪枫。因此织堂,形參只有在函數(shù)內(nèi)部有效。 函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量奶陈。

2.實(shí)參可以是常量易阳、變量、表達(dá)式吃粒、函數(shù)等潦俺, 無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí)徐勃,它們都必須具有確定的值集嵌, 以便把這些值傳送給形參等曼。 因此應(yīng)預(yù)先用賦值,輸入等辦法使實(shí)參獲得確定值。

3.實(shí)參和形參在數(shù)量上柔袁,類型上,順序上應(yīng)嚴(yán)格一致铺峭, 否則會(huì)發(fā)生“類型不匹配”的錯(cuò)誤。

4.函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的冀自。 即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參幅聘。 因此在函數(shù)調(diào)用過程中凡纳,形參的值發(fā)生改變,而實(shí)參中的值不會(huì)變化帝蒿。

void Exchg1(int x, int y) 
{
 int tmp;
 tmp=x;
 x=y;
 y=tmp;
 printf("Exchg1:x=%d,y=%d\n",x,y);
}
void Exchg2(int &x, int &y) 
{
 int tmp;
 tmp=x;
 x=y;
 y=tmp;
 printf("Exchg2:x=%d,y=%d\n",x,y);
}
void Exchg3(int *x, int *y) 
{
 int tmp;
 tmp=*x;
 *x=*y;
 *y=tmp;
 printf("Exchg3:x=%d,y=%d\n",*x,*y);
}
 
void main()
{
 int a=4,b=6;
 Exchg1 (a,b) ;
 printf("a=%d,b=%d\n",a,b);
 Exchg2 (a,b);
 printf("a=%d,b=%d\n",a,b);
 Exchg3(&a,&b) ;
 printf("a=%d,b=%d\n",a,b);
}

這里Exchg1函數(shù)被調(diào)用的時(shí)候荐糜,并沒有成功交換a跟b的數(shù)據(jù)。為何呢葛超。
int a=4,b=6;
Exchg1 (a,b) ; //這里本質(zhì)上發(fā)生的是:Exchg1 (intx=a,int y=b) ; x跟y是函數(shù)定義里面的形參暴氏,也就是說這里只是把實(shí)參a跟b的值賦予了x,y這2個(gè)形參變量。接下來绣张,函數(shù)里發(fā)生的值互換只換掉了x跟y的值答渔,而實(shí)參a跟b沒有影響。
再看Exchg2 (a,b); //再看本質(zhì)Exchg2 (int &x=a,int &y=b); 這里x跟y都是a,b的引用侥涵,操作x跟y交換就等于a跟b交換沼撕,自然,調(diào)用Exchg2 可以成功交換a跟b
Exchg3(&a,&b) ; //Exchg3(int *x=&a,int *y=&b); x跟y2個(gè)形參是a跟b的指針芜飘,也就是實(shí)參數(shù)據(jù)存放的地址务豺。然后函數(shù)里交換了x跟y指向的數(shù)據(jù),也就是實(shí)參a跟b嗦明,所以笼沥,交換也是成功的。

代碼運(yùn)行的結(jié)果娶牌,exchg1沒有交換a,b值奔浅;exchg2交換了a,b值,到了exchg诗良,a,b的值似乎沒有交換汹桦,仍舊是a為4,b為6,剛開始以為代碼有問題累榜,后來設(shè)置了斷點(diǎn)之后营勤,發(fā)現(xiàn)代碼運(yùn)行到exchg3(&a,&b)時(shí),a=6,b=4了壹罚,所以代碼運(yùn)行結(jié)果和初始值一樣的話葛作,說明已經(jīng)交換了a,b的值,至此說明代碼是沒有任何問題的猖凛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赂蠢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子辨泳,更是在濱河造成了極大的恐慌虱岂,老刑警劉巖玖院,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異第岖,居然都是意外死亡难菌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門蔑滓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郊酒,“玉大人,你說我怎么就攤上這事键袱×蔷剑” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蹄咖,是天一觀的道長褐健。 經(jīng)常有香客問我,道長澜汤,這世上最難降的妖魔是什么蚜迅? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮俊抵,結(jié)果婚禮上慢叨,老公的妹妹穿的比我還像新娘。我一直安慰自己务蝠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布烛缔。 她就那樣靜靜地躺著馏段,像睡著了一般。 火紅的嫁衣襯著肌膚如雪践瓷。 梳的紋絲不亂的頭發(fā)上院喜,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音晕翠,去河邊找鬼喷舀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛淋肾,可吹牛的內(nèi)容都是我干的硫麻。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼樊卓,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼拿愧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碌尔,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤浇辜,失蹤者是張志新(化名)和其女友劉穎券敌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柳洋,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡待诅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了熊镣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卑雁。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖轧钓,靈堂內(nèi)的尸體忽然破棺而出序厉,到底是詐尸還是另有隱情,我是刑警寧澤毕箍,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布弛房,位于F島的核電站,受9級(jí)特大地震影響而柑,放射性物質(zhì)發(fā)生泄漏文捶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一媒咳、第九天 我趴在偏房一處隱蔽的房頂上張望粹排。 院中可真熱鬧,春花似錦涩澡、人聲如沸顽耳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽射富。三九已至,卻和暖如春粥帚,著一層夾襖步出監(jiān)牢的瞬間胰耗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來泰國打工芒涡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柴灯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓费尽,卻偏偏與公主長得像赠群,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子依啰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348