return 語(yǔ)句終止當(dāng)前正在執(zhí)行的函數(shù)并將控制權(quán)返回到調(diào)用該函數(shù)的地方。
沒(méi)有返回值得 return 語(yǔ)句只能用在返回類(lèi)型是 void 的函數(shù)中雀哨。返回 void 的函數(shù)不要求非得有 return 語(yǔ)句固额,因?yàn)樵谶@類(lèi)函數(shù)的最后一句后面會(huì)隱式地執(zhí)行 return 眠蚂。
通常情況下 void 函數(shù)想在中間位置提前退出,可以使用 return 語(yǔ)句斗躏。這時(shí) return 語(yǔ)句的作用類(lèi)似于使用 break 語(yǔ)句退出循環(huán)逝慧。
return語(yǔ)句的第二種形式提供了函數(shù)的結(jié)果,只要函數(shù)的返回類(lèi)型不是 void 啄糙,則該函數(shù)內(nèi)的每條 return 語(yǔ)句必須返回一個(gè)值笛臣。
return 語(yǔ)句返回值得類(lèi)型必須與函數(shù)的返回類(lèi)型相同,或能隱式的轉(zhuǎn)換成函數(shù)的返回類(lèi)型隧饼。
返回一個(gè)值得方式和初始化一個(gè)變量或形參的方式完全一樣沈堡,返回的值用于初始化調(diào)用點(diǎn)的一個(gè)臨時(shí)量,該臨時(shí)量就是函數(shù)的調(diào)用結(jié)果桑李。
函數(shù)完成后踱蛀,它所占用的儲(chǔ)存空間也隨之被釋放掉。因此贵白,函數(shù)終止意味著局部變量的引用將指向不再有效的內(nèi)存區(qū)域率拒。
調(diào)用遠(yuǎn)算符也有優(yōu)先級(jí)和結(jié)合律。調(diào)用運(yùn)算符的優(yōu)先級(jí)與點(diǎn)運(yùn)算符和剪頭運(yùn)算符相同禁荒,并且也符合左結(jié)合律猬膨。
如果函數(shù)返回指針、引用呛伴、類(lèi)的對(duì)象勃痴,就能使用函數(shù)調(diào)用的結(jié)果訪(fǎng)問(wèn)結(jié)果對(duì)象的成員。
函數(shù)的返回類(lèi)型決定函數(shù)調(diào)用是否是左值沛申。調(diào)用一個(gè)返回引用的函數(shù)得到左值,其它返回類(lèi)型得到右值姐军√模可以像使用其它左值那樣來(lái)使用返回引用的函數(shù)的調(diào)用。
如果返回類(lèi)型是常量引用奕锌,我們不能給調(diào)用的結(jié)果賦值著觉。
函數(shù)可以返回花括號(hào)保衛(wèi)的值的列表。類(lèi)似于其它返回結(jié)果惊暴,此處的列表也用來(lái)對(duì)函數(shù)返回的臨時(shí)量進(jìn)行初始化饼丘。如果列表為空,臨時(shí)量執(zhí)行值初始化辽话。否則肄鸽,返回的值由函數(shù)的返回類(lèi)型決定。
如果函數(shù)的返回類(lèi)型不是 void 屡穗,那么它必須返回一個(gè)值贴捡。
但我們?cè)试S main 函數(shù)沒(méi)有 return 語(yǔ)句直接結(jié)束。(編譯器將隱式地插入一條 return 0 )
如果一個(gè)函數(shù)調(diào)用了它自身村砂,不管這種調(diào)用是直接的還是間接的烂斋,都稱(chēng)該函數(shù)為遞歸函數(shù)。
在遞歸函數(shù)中础废,一定有某條路徑是不包含遞歸調(diào)用的汛骂,否則,函數(shù)將永遠(yuǎn)遞歸下去评腺。這種函數(shù)含有遞歸循環(huán)帘瞭。
因?yàn)閿?shù)組不能被拷貝,所以函數(shù)不能返回?cái)?shù)組蒿讥。但函數(shù)可以返回?cái)?shù)組的指針或數(shù)組的引用蝶念。
因?yàn)闊o(wú)法返回?cái)?shù)組抛腕,所以將返回類(lèi)型定義成數(shù)組的指針。
如果要定義一個(gè)返回?cái)?shù)組的指針的函數(shù)媒殉,則數(shù)組的維度必須跟在函數(shù)的名字之后担敌。
函數(shù)的形參列表位置先于數(shù)組的維度。
type 表示元素的類(lèi)型廷蓉,dimension 表示數(shù)組的大小全封,(*function(parameter_list))兩端的括號(hào)必須存在,若不存在函數(shù)的返回類(lèi)型僵尸指針的數(shù)組桃犬。
任何函數(shù)的定義都能使用尾置返回刹悴。尾置返回類(lèi)型真在形參列表后面并以一個(gè) -> 符號(hào)開(kāi)頭。為表示函數(shù)真正的返回類(lèi)型跟在形參列表之后攒暇,在本應(yīng)該出現(xiàn)返回類(lèi)型的地方放置一個(gè) auto 土匀。
如果知道函數(shù)返回的指針將指向哪個(gè)數(shù)組,就可以使用 decltype 關(guān)鍵字聲明返回類(lèi)型形用。