C程序設計語言 1.7 函數

所謂函數,執行特定功能的代碼塊,可以有參數和返回值,目前為止,我們使用的函數都是函數庫中提供的函數,如(printfgetcharputchar)等。現在,讓我們自己動手來編寫一些函數,我們現在通過編寫一個求冪的函數power(m,n)來說明函數定義的方法。power(m,n)來說明函數定義的方法。power(m,n)函數用于計算整數m的n次冪,其中n是正整數。

#include <stdio.h>
int power(int m, int n);
/* test power function */
int main()
{
  int i;
  for (i = 0; i < 10; ++i)
    printf("%d %d %d\n", i, power(2,i), power(3,
  i));
  return 0;
}
/* power: raise base to nth
power; n >= 0 */
int power(int base, int n)
{
  int i, p;
  p = 1;
  for (i = 1; i <= n; ++i)
    p = p * base;
  return p;
}

函數定義的一般形式為:

返回值類型 函數名(0個或多個參數聲明)
{
  語句
  ···
}

power函數的第一行語句
int power(int base,int n)
int為返回值類型,power為函數名,(int base,int n)為參數表。power函數的參數使用的名字只在power函數內部有效,對其他任何函數都是不可見的:其他函數可以使用與之相同的參數名字而不會引起沖突。
我們通常把函數定義中圓括號內列表中出現的變量稱為形式參數,而把函數調用中與形式參數對應的值稱為實際參數
power函數計算所得的結果通過return語句返回給main函數。關鍵字return的后面可以跟任何表達式,形式為:

return 表達式;

函數不一定都有返回值。不帶表達式的return語句把控制權返回給調用者,但不返回有用的值。
main函數末尾有一個return語句。由于main本身也是函數,因此也可以向其調用者返回一個值,該調用者實際就是程序的執行環境。一般來說,返回0表示程序正常終止,返回值為非0表示出現異常情況。
出現在main函數之前的聲明語句

int power(int m,int n);

這個叫函數聲明,表示power函數有兩個int類型參數,并返回一個int類型的值。這種聲明稱為函數原型,它必須和power函數的定義和用法一致。如果函數的定義、用法和函數聲明的原型不一致,將出現錯誤。
函數原型與函數聲明中參數名不要求相同,而且函數原型中,參數名也不是必須的:

int power(int,int);

但是,合適的參數名能起到很好的說明性作用,因此我們在函數原型中總是指定參數名。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容