麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C++ > 正文

C++函數的定義、什么是函數

2020-05-23 14:28:02
字體:
來源:轉載
供稿:網友
在日常生活中,我們經常會用到工具。比如我們畫一個表格需要用到直尺,它可以告訴我們線段的長度;我們開瓶子的時候需要用開瓶器,它可以把瓶子打開;我們在做計算題的時候需要用到計算器,它能夠告訴我們計算結果。

使用工具有些什么好處呢?首先,如果這個工具是現成的,我們就可以不必要自己去做一個這樣的工具,直接拿來就能用(比如開瓶器、計算器)。其次,不管是現成的工具,還是自己做的工具(比如自己做的直尺),一定是能夠多次反復使用的(比如直尺不是用完一次就不能再用的),而且是能夠在各種合適的情況下使用的。(直尺在量程范圍內能量這條線段的長度,也能夠量那條線段的長度。)

在程序設計中,我們也會有各種各樣的“工具”。你告訴比較大小的“工具”兩個不相等的數,這個“工具”能夠告訴你哪個數大;你告訴求正弦值的“工具”一個弧度,這個工具能夠求出這個弧度對應的正弦值等等……這些工具的名字就是函數(Function)。要注意,在程序設計中的函數和數學中的函數有相似的地方,但是它們卻完全是兩碼事,請不要將兩者等同起來。

函數和工具的性質是一樣的。如果有一個現成求正弦值的函數,我們就不必自己去“造”一個這樣的函數。求正弦值的函數是可以多次使用的,并且可以求出任意實數的正弦值(合適的情況下),但是它卻求不出一個虛數的正弦值(不合適的情況下)。

如何定義和使用函數

有時候我們會知道一個工具有什么功能,但是卻因為對其陌生而不會使用,這時候要使用它可能會發生一些困難。除了自己有空去摸索一下以外,最有效的辦法就是去看說明書了。說明書里會告訴你什么東西放在什么位置上,使用了以后會產生什么效果之類的。

同工具一樣,每個函數也有其自己的說明書,告訴用戶如何調用(就是使用的意思)這個函數。這份說明書就稱為這個函數的原型。它的格式為:
    產生結果類型 函數名(參數1,參數2,……參數n);

函數名相當于工具的名字,比如直尺、計算器等等。產生效果類型相當于使用該工具產生的效果,比如直尺能夠讀出一個長度,計算器能夠顯示一個結果等等。而參數(Parameter)則是表示合適的使用情況,比如直尺應該去量長度而不能去量角度,計算器能計算數值而不能去畫圖等等。

那么我們如何來閱讀函數的“說明書”呢?我們先來看兩個例子:
⑴int max(int a,int b);
這個函數名稱為max,即求出最大的值。運行該函數以后,產生的結果是一個整數。在數學中,我們會有一元函數比如f(x)=2*x+3,也會有多元函數比如g(x,y)=x/4+y等等。我們在使用f(x)或g(x,y)的時候括號內數的位置必須和自變量的字母對應,比如g(4,1)=4/4+1=2,此時x=4并且y=1。我們既不能將其顛倒,也不能寫出g(4)或者g(4,2,1,5)之類的表達式,否則就是錯誤的。程序設計中參數的作用和自變量x,y的作用是類似的。在函數“說明書”中,也交待了哪個位置應該放置什么類型的參數,我們在調用函數的時候要注意參數的類型、順序、個數都要一一對應。

具體使用請看以下的程序:(程序6.1.1)
#include "iostream.h"
int max(int a,int b);//函數原型,假設函數已經定義
int main()
{
   int r=3,s=5,t;
   t=max(r,s);//使用函數,并記錄產生的結果
   cout<<t <<endl;
   return 0;
}
運行結果:
5

對于上面這段程序,有兩點要說明。首先,調用函數時放入括號內的變量名r和s與函數原型里a和b的名字是可以不一樣的。就像我可以用尺量各種各樣的紙。但是,它們的數據類型必須相同,如果把一個字符型變量放在這個位置上,就如同用尺去量角度一樣,無法成功的。其次,調用函數后的結果可以認為是一個表達式的值。我們可以把這個結果賦值給一個變量或者將其輸出。當然,我們也可以不保存不輸出這個結果,但是那樣的話,就像是量了長度卻沒有把結果記錄下來。

⑵void output(char c);
這個函數名為output,即輸出。void表示空類型,它同整型、實型一樣,也是一種數據類型。它表示調用該函數后,不會產生任何定量的結果。這是什么意思呢?我們知道,例如榔頭這種工具,它只能產生一些效果,如把釘子砸進木頭里,但是它不會給使用者一個定量的結果。不過我們大可不必擔心它是否完成了我們要它完成的工作。如果榔頭沒把釘子砸進木頭里,要么是榔頭本身質量有問題,要么就是使用者沒有按照要求去使用。若這把榔頭不是用戶自己造的,那么用戶沒有任何責任。

下面我們就來嘗試一下使用這個函數:(程序6.1.2)
#include "iostream.h"
void output(char c); //函數原型,假設函數已經定義
int main()
{
   char temp;
   cin >>temp;
   output(temp);
   return 0;
}
運行效果:
T
T

雖然函數沒有產生什么定量的結果,但是其在屏幕上輸出的功能還是達到了。對于產生void(空類型)的函數,我們不必去保存結果了。

程序6.1.1和6.1.2的代碼是不完善的,如果僅用這些代碼去編譯會被告知函數未定義。由于涉及更多的知識,這些代碼將在下一節得到完善。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产一国产精品一级毛片 | lutube成人福利在线观看 | 精品一区二区三区在线观看国产 | 成人羞羞在线观看网站 | 激情宗合 | 欧美成年人视频在线观看 | 国产91av视频 | 黄色高清免费 | 久久精精品| 欧美日韩网站在线观看 | 九一免费版在线观看 | 国产成人在线一区 | 新久久久久久 | 久久久国产电影 | 国产精品久久久久久影院8一贰佰 | 99久久婷婷国产综合精品青牛牛 | 亚洲天堂在线电影 | 91成人免费版 | 龙的两根好大拔不出去h | china对白普通话xxxx | 国产精品亚洲综合 | 成人在线网站 | 久久久久久久.comav | 性片网站| 国产精品美女一区二区 | 99精品视频久久精品视频 | 羞羞视频免费观看网站 | 中文有码一区二区 | 毛片三区 | 色女生影院 | 中文字幕观看 | 激情亚洲一区二区 | 国产盼盼私拍福利视频99 | 国产精品久久久久久久四虎电影 | 精品国产一区二区三区在线观看 | 久久成人在线观看 | av在线日韩 | 免费网址黄 | 欧美一级做一a做片性视频 日韩黄色片免费看 | a免费视频 | 天天色综合6 |