兩個返回值有區別嗎,好像return c是返回區域性變數,是禁止的吧?

2025-03-15 22:00:12 字數 1809 閱讀 3795

1樓:匿名使用者

有區別。返回complex( ,比返回c慢,返回complex( ,需要重新生成乙個物件,時間和空間上不利,建議和悉罩使用。

complex complex::operator + const complex & c2)

return complex(this->real + this->陸首imag +

這樣喚鬧的話在傳值的時候可以不產生新的臨時變數c和c2,也簡化了**。

2樓:網友

返回c就可以了譽舉,當然complex(,,只是複雜了一點胡納,也沒錯。

區域性變數當然可以作為返回慶做碧值,例如:

int fun(int a, int b)int c = a + b;

return c;

3樓:網友

你畝灶的兩種寫法效果是相同的,雖然c是區域性變數,但是返回的值可以納亮傳遞過去的,但是你迅茄扮不可以return c的指標。

道理很明白,int i=0;return i;i是區域性變數,但是返回完全是可以的。

4樓:網友

函式的返回型別是complex的,所以在在呼叫此函式出編譯器會旅握仔為此函式開闢個返回皮迅值的記憶體空間拆汪,所以返回的c是儲存在此空間的,可以返回的。

c++可以用return語句返回兩個變數麼

5樓:網友

不能,要麼用引用傳參,要麼就返回乙個指標。

6樓:愛金霞

不能,可以用兩個引用型的引數。

c語言中return語句的具體作用是什麼?返回值是幹嘛的,誰向誰返值,返到**?請回答的具體點,謝謝!

7樓:網友

在函式中,如果碰到return 語句,那麼程式就會返**用該函式的下一條語句執行,也就是說跳出函式的執行,回到原來的地方繼續執行下去。但是如果是在主函式中碰到return語句,那麼整個程式就會停止,退出程式的執行。

語句不可返回指向「棧記憶體」的「指標」或「引用」,因為「棧記憶體」的空間在函式體結束時,自動被銷燬,指向這裡的指標就會出錯!

要搞清楚返回的究竟是「值」、「指標」、還是「引用」。

例如:char * function(void)

2.因為返回值的不同,處理的方法也不同,否則會出錯的。

3.如果函式返回的值是乙個物件,那麼就要考慮return語句的效率了!

例如:**1

return string(str1+str2);

這是臨時物件的語法,表示「建立乙個臨時物件,並返回它」。但是它並不 與 「先建立乙個。

區域性物件temp,然後返回它的結果」等價!!

實際上它們差了很多了!

上面的 **2 執行時,將發生三件事:

1:temp物件被建立,同時完成初始化;

2:拷貝建構函式把temp拷貝到儲存返回值的外部儲存單元中;

3:temp在函式結束時被銷燬。

但是**1執行時跟**2不同:編譯器直接把臨時變數建立並初始化在外部儲存單元裡,省去了拷貝和。

析構的過程,也就少了這部分的時間開銷,提高了效率。所以,返回任何結構或類的物件時,一定要這。

樣做!另外,return int(x+y);這樣的語句不要寫成:temp=int(x+y);return temp;

雖然象int,float,double 等資料型別不存在拷貝析構的問題,不會提高多少效率,但寫出來的語句更簡潔,看來也清楚的多!

8樓:網友

在函式呼叫時返回函式被呼叫產生的結果。

函式可以有兩個返回值麼,一個函式可以有兩個返回值麼

返回值只能是1個,如果想得到兩個返回值的話,可以使用指標傳遞引數,函式內部修改指標所指向變數的值即可!在呼叫函式時多加一個計數引用就行了。例如有返回值的函式求解一元二次方程的解 double calculate2 double a,double b,double c,double count a,b...

求助,這兩個備份有什麼區別,這兩個有什麼區別?

問題敘述的不詳細,請詳細描述一下問題 錯誤 提示內容等等,這樣才可以提出針對性的解決方案,麻煩補充一下。thinkpad 黑將這兩個版本有什麼區別 thinkpad 黑將s5系列為2016年6月上市的15.6英寸遊戲本,搭載intel第六代酷睿標壓處理器,遊戲效能顯示卡,魔獸a面定製限量版可選,共有...

冠有兩個讀音它們怎麼區分,怎麼區別冠的兩個讀音一聲和四聲?

讀gu n,名詞,表帽子或像帽子一樣的東西.例如皇冠 雞冠 樹冠。讀gu n,把帽子戴在頭上 未冠 加上 冠以省名 居第一位 冠軍 作姓氏.冠 的兩個讀音詳情如下 gu n 名 帽子 衣 整齊 怒發衝 名 形狀像帽子或在頂上的東西 雞 樹 gu n 動 書 把帽子戴在頭上。動 在前面加上某種名或文字...