天天看點

return與exit差別

exit  是用來結束一個程式的執行的,而return隻是用來從一個函數中傳回。

return

  return 表示從被調函數傳回到主調函數繼續執行,傳回時可附帶一個傳回值,由return後面的參數指定,當然如果是在主函數main, 自然也就結束目前程序了,如果不是,那就是退回上一層調用。

  return通常是必要的,因為函數調用的時候計算結果通常是通過傳回值帶出的。

  如果函數執行不需要傳回計算結果,也經常需要傳回一個狀态碼來表示函數執行的順利與否(-1和0就是最常用的狀态碼),主調函數可以通過傳回值判斷被調函數的執行情況。

  如果實在不需要函數傳回什麼值,就需要用void聲明其類型。

  補充:如果你函數名前有傳回類型定義,如int,double等就必須有傳回值,而如果是void型,則可以不寫return,但這時即使寫了也無法傳回數值的

  例如:

  1、非void型

  int f1()

  {

  int i=1;

  return 1;

  //return(i); //這樣也可以

  }

  2、void型

  void f2()

  //return;//這樣也可以,不要這一句也可以

  有時即使被調用函數是void類型被調函數中的return也不是毫無意義的

  舉例:

  #include "stdio.h"

  void function()

  {printf("111111");

  return;

  printf("222222");

  main()

  {function();

  運作結果為:螢幕上隻輸出一串數字111111而沒有222222。但是如果去掉function函數中的return語句,就可以同時輸出一串數字222222。

exit()

  exit(0)表示正常退出執行程式,如果加其它的數值:1,2,....可以表示由于不同的錯誤原因而退出 。 

  那麼,1,2,3怎麼對應不同的原因?   --你自己想讓它是什麼意思,它就是什麼意思  

    但一般都有常用的、通用的含義:比如   0   一般都表示正常傳回、退出。

  是以,,在main函數中exit(0)等價于return 0。

本文轉自 baishuchao 51CTO部落格,原文連結:http://blog.51cto.com/baishuchao/1940386