學點 C 語言(32): 函數 – 傳回值

來源:互聯網
上載者:User
C 語言的函數可以返回數組以外(不包括數組指標)的任何類型.

不寫明傳回型別, 在以前的 C 語言版本中是預設返回 int, 現在 C99、C++ 已不支援.

void 表示沒有傳回值, 也就無須 return 語句; 如果是其他語句必須有 return 語句.

在 main 函數中(只是 main 函數)若忘掉 return, 有些編譯器會自動添加 return 0;

1. 每執行 return 語句函數將會退出:
#include <stdio.h>int main(void){    printf("111\n");     printf("222\n");    return 0; /* 之後的語句將不會執行 */    printf("333\n");    printf("444\n");        getchar();    return 0;}

2. 如果函數沒有傳回值, 可以借無參數的 return 跳出:

#include <stdio.h>void prn(void);int main(void){    prn();    getchar();    return 0;}void prn(void) {    printf("111\n");     printf("222\n");    return; /* 無參數的 return */    printf("333\n");    printf("444\n");}

3. return 後面不是"等號", 但傳回值也可以寫在括弧中:

#include <stdio.h>long long MySqr(int x);int main(void){    int i = 9;    i = MySqr(i);    printf("%d\n", i);        getchar();    return 0;}long long MySqr(int x) {    return(x*x); /* 傳回值在括弧中 */}

4. return 與 exit 的區別:

main 函數結束時, 程式也就結束了, return 0; 或 return(0); 返回給系統的 0 表示正常退出.
如果返回了非零的值, 一般寫做: return 1; 或 return(1); 表示異常結束.

在一般函數中 return 只是退出當前函數;
但在任何地方, exit(1); 都是退出程式, 其中的 1 也是給系統的傳回值, 表示異常退出;
異常退出也可以使用 abort(); 這個兩個函數(exit、abort)都聲明在 stdlib.h

#include <stdio.h>#include <stdlib.h>void prn(void);int main(void){    prn();    getchar();    return 0;}void prn(void) {    printf("abc\n");     exit(1);         /* 異常退出程式 */}

5. 每執行 return 語句函數將會退出:

#include <stdio.h>int main(void){    printf("111\n");     printf("222\n");    return 0; /* 之後的語句將不會執行 */    printf("333\n");    printf("444\n");        getchar();    return 0;}

6. 注意傳回值的類型:

#include <stdio.h>float average(int a, int b, int c);int main(void){    printf("%g\n", average(2,6,9));        getchar();    return 0;}float average(int a, int b, int c) {    return (a + b + c)/3.0; /* 假如這裡沒有 .0 將不會返回正確的結果*/}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.