1. c語言return是函數嗎
return不是函數 而是關鍵字
用於向主調函數返回.
2. C語言中return怎麼用,主函數中一定要用嗎
return,從函數調用執行中返回,可以分兩種情況:
1、void型
例如:
void f2()
{
int i=1;
//return;//這樣也可以,不要這一句也可以
}
2、非void型
例如:
int f1()
{
int i=1;
return 1;
//return(i); //這樣也可以
}
有時即使被調用函數是void類型 被調函數中的return也不是毫無意義的;對於void,在函數的最後一行代碼,可以不用;其他地方,因為你要返回函數調用,所以必須要用。
對於非void,既然函數返回值類型定義為非void,那麼肯定需要使用這個函數的返回值。比如返回值是函數運行結果,或者表明函數運行結果是成功還是失敗。這種情況,即使是函數最後一行,也需要使用。
對於有些情況,沒有return,編譯器也不會報錯,比如main函數(編譯器會默認返回值為0,假設你的main函數返回值是int)。但是為了保持良好的習慣,還是建議使用。
比如你寫的程序編譯後需要在腳本中調用,我們可以通過檢查你的程序的結束代碼來判斷你的程序的執行情況,成功或是失敗。這時候的檢查就依賴於你是否在main函數中正確使用了return。
(2)c語言return函數嗎擴展閱讀:
舉例:
#include "stdio.h"
void function()
{printf("111111");
return;
printf("222222");
}
main()
{
function();
}
運行結果為:屏幕上只輸出一串數字1 而沒有2。 但是如果去掉function函數中的return語句 就可以同時輸出一串數字2。這里的return其實還有個退出該程序的作用!也就是說在printf("111111");後面加了個return,就表示結束該函數,返回主函數中去了!
參考資料
網路_return(C語言語句)
3. 在標准c語言中 函數只能有一個return函數么
一個函數中可以有多個return,但是函數在運行時只能有一個return生效。return返回的類型必須是函數的類型。
如下列函數在a大於0時返回1,等於0時返回0,小於0時返回-1。函數test的類型是int,所以return的數字必須是int型。函數中根據參數a的不同,分別有3個return,但每次執行只能有一個return被執行。
int test(int a)
{
if(a>0)
return 1;
else if(a==0)
return 0;
else if(a<0)
return -1;
}
4. C語言中return用法(請熟練者進)
return是返回值,這個返回值是和函數的類型有關的,函數的類型是什麼,他的返回值就是什麼
比方主函數intmain()
{}這里就必須有一個return,只有void時可以不用返回值。
功能函數
intfun()
{
return1;
}
這個時候fun函數的作用就是返回一個int類型的值,可以直接拿來用比方inta=fun();
這里就相當於inta=1;
另外一個作用return後面的語句不會執行,我們可以用它來結束程序。
(4)c語言return函數嗎擴展閱讀:
注意事項:
1、一個c程序由一個或多個程序模塊組成,每一個程序模塊作為一個源程序文件。對較大的程序,一般不希望把所有內容全放在一個文件中,而是將它們分別放在若干個源文件中,由若干個源程序文件組成一個c程序。這樣便於分別編寫和編譯,調高調試效率。一個源程序文件可以為多個c程序公用。
2、一個源程序文件由一個或多個函數以及其他有關內容(如指令,數據聲明與定義等)組成。一個源程序文件是一個編譯單位,子啊程序編譯時是以源程序文件為單位進行編譯的,而不是以函數為單位進行編譯的。
3、c程序的執行是從main函數開始的,如果在main函數中調用其他函數,在調用後流程返回main函數,在main函數中結束整個程序的進行。
5. C語言return函數的用法
這條語句一般情況下加在主函數的最後,表示程序運行正常,則返回一個整數值0。其實在windows下一般沒有這個要求,除非是一個程序調用另外一個程序,或者在unix和linux下系統會要求一個程序返回一個整數值。
6. c語言函數的return誰能仔細給我解釋一下
事實上 無論是return ; 還是return X;
在匯編上都只有一條指令:ret(retn)
只不過對於return X; 會在 執行ret指令之前對eax寄存器賦值:
如果是return 0 ; 可能編譯器會這樣做:
xor eax,eax
ret
其他情況類似
然後從C語言角度講
對於返回類型為void的函數
函數體內可以出現return;語句來表示結束本函數的執行
這個時候eax還是有值的,因為 函數返回類型是void,因此在調用該函數的地方不可能會去用該函數的返回值,也就意味著該返回值是毫無意義的
樓主想問的 單獨的return;語句,對於這行代碼,一般只用在返回類型為void的函數體內
若出現在非void返回類型的函數體內,那麼返回值是隱含在寄存器eax中的
然後對於有返回值的函數來說
return後面是肯定需要跟一個值的
這個值是被送入寄存器eax帶出來的~
我說再多 也許還是會有人不信(本人玩逆向的,這一切信不信那是你們的事,我只能把事實告訴你們,我也只能做到這樣了)
下面直接上代碼上圖:
(微軟任何C/C++編譯器、VC/VS這些、都支持編譯此代碼,沒有警告,沒有錯誤)
註:主函數不主函數的return都是沒有區別的
但是main函數很特別,特別在它有好多種寫法,標准C真正的主函數返回類型是int
有2個參數,一個是命令行參數個數,一個是命令行參數
windows下面的主函數可以有三個參數,前兩個參數跟標准C一樣,第三個參數是環境變數
這些參數都是由mainCRTStartup函數傳進來的,而mainCRTStartup再往上你還要研究的話那。。。。那。。。那。。。我只能告訴你這些參數都是要操作系統傳進來的吧~~~
我們編程的時候,也許有些菜鳥會把main寫成如下形式:void main()
其實這種寫法在編譯之後都是會被轉化成標准寫法的底樓說的 不帶返回值系統默認返回0這完全是不靠譜的,因為事實當中返回值都是被寄存器eax帶出去的,而對於main是必須要返回值的,菜鳥寫了沒返回值的main在編譯之前就被編譯器替換掉了,哪來的默認返回0的說法?何來默認?系統會把你寫的main換成 標准main形式!標准main會在底下返回0
主函數return的值只有你在其他進程中創建子進程,子進程的返回狀態被父進程接收的值就是main的返回值,所以,在你寫的程序不需要被其他進程創建的話,main的返回值是無關緊要的
7. C語言中return的作用是什麼,能具體點嗎
return 表示把程序流程從被調函數轉向主調函數並把表達式的值帶回主調函數,實現函數值的返回,返回時可附帶一個返回值,由return後面的參數指定。
return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。 如果函數執行不需要返回計算結果,也需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。
(7)c語言return函數嗎擴展閱讀:
C語言return返回值的說明:
1、沒有返回值的函數為空類型,用void表示。
2、return 語句可以有多個,可以出現在函數體的任意位置,但是每次調用函數只能有一個 return 語句被執行,所以只有一個返回值。
3、函數一旦遇到 return 語句就立即返回,後面的所有語句都不會被執行到了。從這個角度看,return 語句還有強制結束函數執行的作用。
4、return語句是提前結束函數的唯一辦法。
參考資料來源:網路-return(C語言語句)