c語言return返回值給誰
A. c語言中 遞歸函數 的return 返回值問題
return
表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數指定。
return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。
如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。
return語句後面具體是什麼內容,這就要具體情況具體分析了:
(1)
在返回類型是char的函數中,return後應該是char類型的值;
(2)
在返回類型是int的函數中,如果是要停止函數的調用,最好應該為0;其他的按照你的目的而定,只要是int
類型就行了
(3)
在返回類型是結構類型的函數中,return後應該是結構的一個實例對象。
總之,函數定義為什麼樣的返回類型,該函數中return後就應該是相應類型的值。
B. return在c語言做為返回值,返回給誰呢怎麼判斷主調用函數
這個概念很簡單,A函數調用B函數,那麼A函數就叫做主調用函數.B就叫被調用函數.C語言不允許嵌套定義但是允許嵌套調用.
樓上只是說了一種情況.其實他用的main()函數可以是任意的其他函數.
int fun1()或者是main()
{
……
k=fun2();
....
return a;
}
int fun2()
{
……
return a;
}
在這里,fun1()或者main()因為主動調用fun2()所以就是主調函數,而fun2()因為是被fun1和main()調用,所以稱fun2()叫做被調用函數.
C. 請問C語言主函數里的return語句有什麼用返回給什麼函數謝謝
主函數里的return就是退出程序用的,值表示程序是否正常退出,返回值給操作系統了。
return
0是正常退出,非0表示異常退出。
D. c語言中的RETURN()返回值是什麼意思求舉例
return ()表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,返回值的類型由return後面的參數確定;Return語句可以用來返變數或指針中的值,也可以用來返回0,表示返回為空,返回一個代數值,通常在子函數zd的末尾。
return 表示把程序流程從被調函數轉向主調函數並把表達式的值帶回主調函數,實現函數值的返回,返回時可附帶一個返回值,由return後面的參數指定。
(4)c語言return返回值給誰擴展閱讀:
return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的; 如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。
如果函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值。
E. C語言中return後表達式,返回到主調函數的哪個變數里
據說return先把值返回到CPU的一個寄存器里(哪一個我已經忘了),如果主調函數中寫了接收變數——x=fun(...);這個樣子的,那麼就再從寄存器中賦給x。如果沒有這么寫,等執行下一條語句就被沖掉了,說明主調函數不需要這個返回值。
F. C語言中return要返回到哪裡
這指的是返回上一級,比如一個遞歸程序,從第三層返回到第二層;又比如一個普通的子程序,那就返回到主程序中去。
G. c語言中return語句的具體作用是什麼返回值是幹嘛的,誰向誰返值,返到哪裡請回答的具體點,謝謝!
在函數中,如果碰到return 語句,那麼程序就會返回調用該函數的下一條語句執行,也就是說跳出函數的執行,回到原來的地方繼續執行下去。但是如果是在主函數中碰到return語句,那麼整個程序就會停止,退出程序的執行。
1.return語句不可返回指向「棧內存」的「指針」或「引用」,因為「棧內存」的空間在函數體結束時,自動被銷毀,指向這里的指針就會出錯!
要搞清楚返回的究竟是「值」、「指針」、還是「引用」。
例如:
char * Function(void)
{
char str[]="Hello,world!"; //str的內存是在Function這個函數的棧上的
return str; //這里就會出錯,返回時,str已經不知道指向哪裡了
}
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 等數據類型不存在拷貝析構的問題,不會提高多少效率,但寫出來的語句更簡潔,
看來也清楚的多!
H. C語言:返回值return 後面的變數到底是給誰啊
myadd1(a,b);最終的結果 有返回值就是返回值。
c = myadd1(a,b); 把myadd1(a,b); 的反回值賦給c
printf("%d",myadd1(a,b)); //輸出反回值
這樣子說不知道,你好不好理解。
I. c語言返回值具體是指什麼
子函數的返回值,main主函數也是有返回值的,但是一般用不到都忽略掉了,一般來說的返回值就是子函數的返回值。當需要一個函數去處理數據時,如求平方,這時候求平方後的值可以有兩種方法表達
1、以值的形式返回給你,即return x,這樣就可以利用這個結果了,此時函數名前當然要加返回的數據類型了
2、當不需要對這一結果進一步處理時,直接printf,這樣可以直接在終端上顯示結果了,這時就沒必要去加了,直接VOID
(9)c語言return返回值給誰擴展閱讀
void:聲明函數無返回值或無參數,聲明無類型指針,顯示丟棄運算結果。(C89標准新增)
如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 * 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。
指針不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同於return(z)這樣的僅能得到一個返回值。