C/C++函數

C/C++函數簡介

函數是什麼,函數實際上就是一種接口。

基本上一個函數總是完成一個特定的功能。

當各種各樣的功能在一起合成一個完整的實用的程序。

但有一個特例,一個名爲 main 的稱爲主函數,是所有程序的入口函數,

這是程序唯一能夠跟系統(程序外部)進行通信的一個函數。

類似於一部手機,你需要充電的時候就接上充電的接口,

需要聽歌就應該接上耳機的接口,其各個接口完成自己特定的功能。

一個正確的函數總是會有以下幾部分組成:

  1. 一個類型名:

用於指定函數的返回值的類型。

  1. 一個函數名:

其名字由程序員規定。一般來說,

我們根據函數需要完成的功能來對其命名

  1. 一個用括號( )包含的參數表:

參數的個數由程序員根據需要來決定,

甚至你還可以不使用函數。

  1. 一個用花括號 { } 包圍的函數體:

函數體裏面的代碼則是函數完成特定功能的整個執行過程。

以下我們給出一個函數:

int AddOne (int val)

{

val = val+1;

return val;

}

讓我們來對這個簡單的函數來分析一下:

int:

函數名前面的 int 具有兩層意思,

第一層意思表示該函數必須要有返回值。

第二層意思表示該函數返回值的類型必須是一個整數。

AddOne:

可以看到,我們的函數名說明了這個函數的功能。

即具有 Add(增加)One(1)的功能。

(int val):

括號裏面有一個名爲val(隨意命名)的參數,

該參數名前面的 int 指定了函數會接收一個整數類型值。

函數體:

假設我們以整數 10 來調用這個函數即 AddOne(10),

對應的,val 收到了整數 10 ,即相當於 val=10,

緊接着,它開始執行函數體裏的第一句代碼,

它先把自己加1 (val+1)得到的結果(11)再覆蓋自己原先的值。

即 val = val + 1 的結果相當於 val = 11 。

接着,它執行第二條語句,return 其後面跟着 val,返回這個新值 11。

完畢!

這個函數其實挺有意思,如果你在 main 函數裏是這樣調用它:

int main (void)

{

int n = 10;

n = AddOne (n);

n = AddOne (n);

return 0;

}

分析:

程序聲明瞭一個變量 n 來動態保存函數的返回值。

n 最初被初始化爲整數 10,那麼一切就會從 10 開始。

在第一次調用 AddOne 函數時,此時 n 爲 10,

該函數將 10 加 1 再返回,此時相當於 n = 11。

在第二次調用 AddOne 函數時,此時 n 爲 11,

在AddOne 函數裏又加1再返回,相當於 n = 12。

之後,程序執行 return 0 向系統返回一個 0 狀態,

表示程序運行成功且正常退出。

從以上分析可以看出,AddOne 函數被調用幾次,

n 的值就會被增加幾次 1 。

以下給出完整 C/C++ 程序

C++ 程序:

/*********** Add.cpp ************/

#include // 輸入輸出頭文件

int AddOne (int val); // 函數聲明

// 主函數

int main (void)

{

int n = 10;// 聲明變量 a 初始化爲10

n = AddOne(n);// 第一次調用

n = AddOne(n);// 第二次調用

std::cout << n << std::endl;//輸出 n 的最終值

return 0;// 給系統返回 0 狀態表示運行成功

}

// 函數實現

int AddOne (int val)

{

val = val+1;// 將值加1再覆蓋自己本來的值

return val;// 返回新值

}

C 程序:

/*********** Add.c ************/

#include <stdio.h> // 輸入輸出頭文件

int AddOne (int val); // 函數聲明

// 主函數

int main (void)

{

int n = 10;// 聲明變量 a 初始化爲10

n = AddOne(n);// 第一次調用

n = AddOne(n);// 第二次調用

printf ("%d\n", n);//輸出 n 的最終值

return 0;// 給系統返回 0 狀態表示運行成功

}

// 函數實現

int AddOne (int val)

{

val = val+1;// 將值加1再覆蓋自己本來的值

return val;// 返回新值

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章