日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java statement 返回类型,6.3 返回类型和返回语句 | Return type Return statement

發(fā)布時間:2023/12/1 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java statement 返回类型,6.3 返回类型和返回语句 | Return type Return statement 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

無返回值函數(shù)

對于返回類型是void的函數(shù),return后不跟表達式。最后的 return; 可以沒有而讓程序隱式執(zhí)行。在void函數(shù)中的return語句還有提前使函數(shù)退出的作用而不進行接下來的計算,如定義一個swap函數(shù)在二者相同時不繼續(xù)運算直接退出:

void swap(int& v1, int& v2){

if (v1==v2) return;

int tmp = v2;

v2 = v1;

v1 = tmp;

//可以不顯式添加return

}

有返回值函數(shù)

函數(shù)不是void類型,則每個void語句都必須返回一個值,且這個值必須與函數(shù)返回類型相同或可以隱式轉(zhuǎn)換為函數(shù)的返回類型。同樣,程序執(zhí)行到return語句后會提前退出:

int foo(int a){

if (a) return 0;

return 1;

}

int main(){

int b = 2, c = 0;

cout<

}

值如何被返回

返回的方式和初始化一個變量或形參完全一致:返回的值用于初始化調(diào)用點的一個臨時量,此臨時量即函數(shù)調(diào)用結(jié)果。

不要返回局部對象的引用或指針

否則當結(jié)束運行,函數(shù)的占用空間被完全釋放,引用或指針不再有效。

返回類類型的函數(shù)和調(diào)用運算符

調(diào)用運算符的優(yōu)先級和點運算符或箭頭運算符相同。因此可以使用函數(shù)調(diào)用的結(jié)果直接訪問結(jié)果對象的成員:

string a(string s1, string s2){return s1+s2;}

int main(){

string sa = "a", sb = "b";

cout<

}

引用返回左值

調(diào)用一個返回引用的函數(shù),得到的結(jié)果是一個左值。因此可以為返回類型是非常量引用的函數(shù)的結(jié)果賦值:

//注意函數(shù)返回類型為char!

char get_var(string& str, string::size_type index){

return str[index];

}

int main(){

s = "hello";

get_val(s, 0) = 'H';

cout<

}

列表初始化返回值

可以返回花括號包圍的值列表給一個臨時量。此列表也用來對表示函數(shù)返回值的臨時量進行初始化。若是空,則默認初始化。否則由函數(shù)返回類型決定返回值。

就如果返回的是內(nèi)置類型,則花括號列表只允許最多一個值且該值所占空間不應(yīng)大于目標類型的空間。若是類類型則由類本身定義,如vector的列表初始化。

主函數(shù)main的返回值

允許main函數(shù)沒有return語句而直接結(jié)束,編譯器會隱式地在最后插入 return 0。

遞歸

無論直接或間接,一個函數(shù)調(diào)用了自身則稱為遞歸函數(shù)。如下列階乘函數(shù):

int factorial(int val){

if (val) {

cout<

}

//注意val-1不能是val--否則死循環(huán)

//若是--val不會報錯,但會多減一次,使最終返回值為 0

return 1;

}

返回數(shù)組指針

數(shù)組不能拷貝,所以不能被返回。

返回數(shù)組的指針可用類型別名簡化:

typedef int arrT[10];

using arrT = int[10];//與上述等價且易懂

arrT* func(int i); //返回一個指向(含有10個整數(shù)的數(shù)組的)指針

聲明一個返回數(shù)組指針的函數(shù)

函數(shù)形式如下:

type (*function(parameter_list))[dimension]

func(int i):表示調(diào)用func時需要int i作為實參

(*func(int i)):表示可以對調(diào)用結(jié)果進行解引用操作

(*func(int i))[10]:表示解引用func的調(diào)用將得到一個大小10的數(shù)組

int (*func(int i))[10]:表示數(shù)組中元素是int類型。

尾置返回類型trailing return type

任何函數(shù)定義都可以使用尾置返回,對于返回類型復(fù)雜的函數(shù)較為有效,比如返回類型是數(shù)組的指針或者數(shù)組的一樣弄。尾置返回類型跟在形參列表后面以 -> 開頭:

auto func(int i) -> int(*)[10]

使用decltype

如果知道函數(shù)返回指針指向哪個數(shù)組,即可使用decltype聲明返回類型。例如下列函數(shù)返回的指針根據(jù)參數(shù)不同而改變:

int odd[] = {1, 3, 5, 7, 9};

int even[] = {2, 4, 6, 8, 0};

decltype(odd) *arrPtr(int i){

return (i%2) ? &odd : &even;

}

int main(){

int i = 3;

cout<

}

attrPtr使用decltype表示其返回類型是個指針,并且該指針所指的對象與odd的類型一致。因為odd是數(shù)組,arrPtr返回一個指向含有5個整數(shù)數(shù)組的指針。注意decltype的結(jié)果是個數(shù)組,要想表示arrPtr返回指針還必須在函數(shù)聲明時加一個*符號。

總結(jié)

以上是生活随笔為你收集整理的java statement 返回类型,6.3 返回类型和返回语句 | Return type Return statement的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。