c語言的函式返回值,c語言中,函式返回值怎麼用?

2021-12-28 00:36:41 字數 5497 閱讀 4089

1樓:

所謂返回值,就是人們想要知道函式或者程式所得到 的結果而設計的函式或者程式結束時給出一個值。比如:我們編寫一個加法函式,肯定想知道加完過後的結果是什麼,那麼我們就指定這個結果為該加法程式的返回值。

關於返回值的返回:

1、函式呼叫語句本身代表其返回值:例如:fun(a);那麼「fun(a)」就是這個返回值。

2、可以把返回值存到對應型別的變數之中。例如:int a=fun(b);

3、返回值是多種多樣的,可以是各種各樣的,int short char double 等等,還可以是指標或者結構體。在資料結構的二叉樹部分,某一個函式的返回值是一個帶有兩個指標的結構體。

2樓:匿名使用者

1、函式定義為:int max(int a, int b),這是個函式是獲得a,b兩個整數值較大的那個,在函式的前面有個int值,說明這個函式返回的是一個整數型別,所以他的返回型別為整型,如果a值比較大就會返回a,這個a的值被稱為返回值。

例如:#include

int max(int a,int b)void main()//在主函式中呼叫函式int max(int a,int b),如果我們輸入1,2,則最後顯示2,2為返回值,而函式int max(int a,int b)中的返回型別為整型。

3樓:巫素芹拜君

1)void

+函式名:表示函式沒返回值。2)int+函式名:

表示函式的返回值型別是整型。3)函式中可以有return語句,表示函式執行到此結束,如果return後面有表示式,說明函式有返回值,如果只是一個'return;'說明函式沒返回值

4樓:縱榮花暴俏

返回值就是執行一個方法後,這個方法丟擲的一個值。返回值一般被用來輸出方法的計算結果,共呼叫的方法取得並進行判斷。

一般說來,定義為void的方法不返回任何值,也就是可以什麼都不返回,或者寫成return;這也是什麼都沒返回。

5樓:

就你的函式功能而言,可以使用指標和引用的方法來交換兩個變數的值。用返回值的方式有點多餘,因為c語言函式只能返回一個結果,如果要返回多個值,則需要寫成一個結構體返回,但這樣其實返回的仍然是一個臨時變數,並沒有交換兩個變數的值,所以不符合你的需求

6樓:金色潛鳥

函式呼叫結果的返回值,可以通過3個途徑獲得。

(1)函式自身返回

(2)通過函式引數返回

(3)通過全域性量返回。

到底用那種方法,取決於程式設計師的考慮。

node* --通過 函式自身返回,返回一個結構指標,指向 node 型結構。

int -- 通過 函式自身返回,返回一個整型量。

createlinklist 是建連結串列,返回node* 結構指標getelem 獲取元素單元,返回node* 結構指標insertlinklist 用 int 表示插入成功或失敗,或用 int 表示什麼。

這些 都 取決於程式設計師的考慮。 沒有絕對的規定。

7樓:柴海依歆

public

void(返回型別:這裡為無) 方法名1()public

int(返回型別:這裡為整形) 方法名2()方法1呼叫了輸出2

方法2呼叫了則可以int

a=方法2();著裡的a等於2了;

一個返回一個資料一個則直接執行

8樓:匿名使用者

如果沒有返回值的話,則就是在函式的結尾直接使用ret指令,然後cpu自動的從堆疊中取出斷點處的地址,恢復呼叫之前的cpu狀態,然後繼續執行函式後面的指令。

函式的返回值是存放在一個呼叫堆疊中,被調函式返回後,主調函式從堆疊中取出返回值,放入到一個變數中。然後就可以使用這個變數了。這就是返回普通的值,返回指標型變數的話,就複雜些。

這些東西可以聯絡編譯原理和組合語言,加以理解。

9樓:聖誕鯊魚

在time1()函式裡,char now是個在函式裡宣告的臨時變數函式返回 char * p之後 ,char now的空間就已經釋放掉了

如果你想返回時間字串

把char now[80]; 改成 char *now =(char *)malloc(sizeof(char)*80);

用malloc函式申請空間,函式返回之後空間就不會被釋放掉了vc++ 6.0編譯通過

10樓:匿名使用者

char now[80];

char *p=null;

p=now;

printf("%s",p);

return p;

這些操作都是子函式中的資料(變數),在子函式結束後,p,now都會被釋放,你的輸出都是不準確的!

11樓:零剛德欣美

當你呼叫函式,並想得到你呼叫的函式的值的時候,就在你呼叫的函式里加上個return語句,返回你想要得到的值

12樓:匿名使用者

不理解你指的輸出是什麼意思。

有返回值是因為呼叫的**需要返回值,沒有返回值是因為呼叫的**不需要返回值,就這麼簡單阿。

13樓:老夫貪狼

假設你的函式是int sum(int a,int b)當你呼叫的時候如果你在主函式中這樣呼叫x=sum(2,4);那麼x的值就是6;

14樓:

你可以這麼理解,比如我們定義了一個函式fun(),如果這個函式有返回值,那麼在呼叫程式裡面(比如主函式)就可以把這個函式當成一個數使用;如果沒有返回值,那麼通常他就是一個獨立的語句存在。

比如fun函式裡面有個return 0;表示返回值是零,那麼在呼叫函式裡面就可以存在諸如

a=fun();b=a+fun();if(fun()>=0{};……這類的語句,表示a=0;b=a+0;if(0>0){};等等,當然也可能是返回一個變數的值,你個指標的值是一樣的。

如果沒有return 語句,那麼函式沒有返回值,呼叫函式裡面就不能把他當做一個數值來使用,會出現:

fun();單獨成句的語句,在fun()裡面可能進行了一些操作,但不需要結果。

c語言自帶的函式通常都有返回值,計算函式返回計算結果,操作函式返回操作結果(成功返回1,失敗返回0)

15樓:

int sum(int a, int b)

void main()

列印輸出3

16樓:淦海瑤

在c中任何函式都有返回值,這個是定下的,主函式也有返回值

返回值分幾個方面,逐個說一下

主函式的返回值,這個一般使用者用不到,程式執行的時候,系統會根據這個返回值來判斷程式的執行結果

不管定義神馬型別的返回值,在tc中預設為void型(這個可以省略),可以根據需要自己定義都可以。

vc中好像必須寫,要不然編譯系統提示出錯

子函式的返回值,分兩類

void,也就是在不需要子函式返回數值的時候用到。注意的是不需要不代表沒有返回值。呼叫成功返回1,不成功返回0,我好像在**看到過這個說法,我不確定

非void型,這個返回值型別根據定義來返回

值得注意的是,在子函式中,只要執行return一定結束子函式,不管後面有多少**

一些系統自帶的函式,如printf,scanf等,最好了解他的返回值

17樓:匿名使用者

根據你的程式來看應該是一個void型,

不過你這是一個交換資料函式,如果這樣傳進來,是修改不了原址的

而如果你想輸出交換後的結果,就只接在函式裡面輸出,因為等出了這個函式,a和b的值是不會變的。

18樓:首桂蘭慕溪

一群不懂c的人在討論

有一種指標型別,叫做

void

*連void是什麼都不知道就在這裡胡說,恐怕都是看譚浩強的書學過來的吧

c語言中,函式返回值怎麼用?

19樓:り斑駁丶4129仉

一般用0表示函式執行正確,正常返回;用負數表示函式執行出錯,每個值可以提前定義,根據出錯的值進行出錯處理。

----------------

誠心為您解答每一個問題!

如您滿意請採納最佳!如有疑問請繼續追問!

您的好評是我們前進的動力,相互幫助,一起進步!

20樓:匿名使用者

return後接一個值。

在呼叫這個函式的函式裡面,呼叫它的時候希望獲得一個值,如果不希望獲得這個值的時候,用void宣告就好。如果需要,比如說需要得到一個整形值

就宣告int func()

在呼叫它的比如main裡面

func()的作用就可以相當於一個int型常數比如外面定義了

int max(int a,int b)

主函式裡面是

main()

這時候就是通過max計算 1>2 則return 一個1 ,1<2 則return一個2。很明顯1<2 所以這裡max(1,2)就會return 一個 2

這時候主函式裡的max(1,2)就相當於一個常數 2a=max(1,2)的作用就相當於a=2

這個意思。

21樓:淦海瑤

在c中任何函式都有返回值,這個是定下的,主函式也有返回值

返回值分幾個方面,逐個說一下

主函式的返回值,這個一般使用者用不到,程式執行的時候,系統會根據這個返回值來判斷程式的執行結果

不管定義神馬型別的返回值,在tc中預設為void型(這個可以省略),可以根據需要自己定義都可以。

vc中好像必須寫,要不然編譯系統提示出錯

子函式的返回值,分兩類

void,也就是在不需要子函式返回數值的時候用到。注意的是不需要不代表沒有返回值。呼叫成功返回1,不成功返回0,我好像在**看到過這個說法,我不確定

非void型,這個返回值型別根據定義來返回

值得注意的是,在子函式中,只要執行return一定結束子函式,不管後面有多少**

一些系統自帶的函式,如printf,scanf等,最好了解他的返回值

22樓:匿名使用者

根據你的程式來看應該是一個void型,

不過你這是一個交換資料函式,如果這樣傳進來,是修改不了原址的

而如果你想輸出交換後的結果,就只接在函式裡面輸出,因為等出了這個函式,a和b的值是不會變的。

23樓:

所謂返回值,就是人們想要知道函式或者程式所得到 的結果而設計的函式或者程式結束時給出一個值。比如:我們編寫一個加法函式,肯定想知道加完過後的結果是什麼,那麼我們就指定這個結果為該加法程式的返回值。

關於返回值的返回:

1、函式呼叫語句本身代表其返回值:例如:fun(a);那麼「fun(a)」就是這個返回值。

2、可以把返回值存到對應型別的變數之中。例如:int a=fun(b);

3、返回值是多種多樣的,可以是各種各樣的,int short char double 等等,還可以是指標或者結構體。在資料結構的二叉樹部分,某一個函式的返回值是一個帶有兩個指標的結構體。

c語言中void函式的返回值是怎麼回事例如下面這

void 是沒有返回值的 如果要有返回值 void的地方改成返回值得型別 如 string int 等 然後再程式的最後一行 增加 return 你要返回的值即可 void 代表空返回值。即無返回值 所給的案例中,swap函式是一個無返回值函式但是該函式帶兩個輸入引數 當主函式呼叫該函式時 只需要給...

c語言中的fgets函式,C語言裡fgets函式怎麼用?

fgets 函式用於從檔案流中讀取一行或指定個數的字元,其原型為 版char fgets char string,int size,file stream 引數說明 string為一個字元陣列,用來保權 存讀取到的字元。size為要讀取的字元的個數。如果該行字元數大於size 1,則讀到 size ...

c語言scanf 輸入函式,c語言中的scanf 函式的用法

scanf是c語言中的一個輸入函式,與printf函式一樣,都被宣告在標頭檔案stdio.h裡,因此在使用scanf函式時要加上 include 在有一些實現中,printf函式與scanf函式在使用時可以不使用預編譯命令 include 它是格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指...