首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言基礎

C語言函數進階:return 返回值機制、函數聲明現代寫法、數組作參數的兩種模式

     編輯:C 語言基礎

返回值與 return 語句

  • 只能透過 return 表達式; 返回單一值,允許多處 return 但每次調用僅執行一個。
  • 返回類型須與函數定義一致,不一致時自動轉型。
  • 整型函數可省略類型聲明(不推薦)。
  • 無返回值函數應明確用 void,避免誤用其返回值。

函數聲明(原型)的必要性與現代寫法

調用前必須聲明,讓編譯器知道返回類型與參數類型。現代格式:
int max(int a, int b); 或 int max(int, int);
傳統格式 int max(); 無參數資訊,易發生錯誤。

可省略聲明的四種情況

  1. 返回值為 int 或 char,編譯器預設為 int。
  2. 被調函數定義在主調函數之前。
  3. 檔案開頭以 extern 預先聲明所有函數原型。
  4. 調用庫函數(已含頭文件)。

數組作函數參數的兩種模式

1. 數組元素(下標變量)作實參

等同普通變量,值傳遞。例:nzp(a[i]) 將第 i 元素值傳給形參 v。

2. 數組名作參數(地址傳遞)

形參與實參共享同一塊記憶體(形參不分配新空間),形參修改直接影響實參。
注意:
a. 類型必須一致。
b. 長度可不一致(僅傳首址),但邏輯上需自行把控。
c. 形參長度可省略或用變量表示:void nzp(int a[], int n)。
d. 多維數組需指定除第一維外的所有維度:int MA(int a[][10])。

/* 例:數組名作參數修改原數組 */
void nzp(int a[], int n) {
    for (int i = 0; i < n; i++) if (a[i] < 0) a[i] = 0;
}
main() { int b[5] = {1,-2,3,-4,5}; nzp(b,5); /* b 變 {1,0,3,0,5} */ }
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved