a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

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

C++函數(shù)的定義、什么是函數(shù)

2020-05-23 14:28:02
字體:
供稿:網(wǎng)友
在日常生活中,我們經(jīng)常會(huì)用到工具。比如我們畫一個(gè)表格需要用到直尺,它可以告訴我們線段的長度;我們開瓶子的時(shí)候需要用開瓶器,它可以把瓶子打開;我們?cè)谧鲇?jì)算題的時(shí)候需要用到計(jì)算器,它能夠告訴我們計(jì)算結(jié)果。

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

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

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

如何定義和使用函數(shù)

有時(shí)候我們會(huì)知道一個(gè)工具有什么功能,但是卻因?yàn)閷?duì)其陌生而不會(huì)使用,這時(shí)候要使用它可能會(huì)發(fā)生一些困難。除了自己有空去摸索一下以外,最有效的辦法就是去看說明書了。說明書里會(huì)告訴你什么東西放在什么位置上,使用了以后會(huì)產(chǎn)生什么效果之類的。

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

函數(shù)名相當(dāng)于工具的名字,比如直尺、計(jì)算器等等。產(chǎn)生效果類型相當(dāng)于使用該工具產(chǎn)生的效果,比如直尺能夠讀出一個(gè)長度,計(jì)算器能夠顯示一個(gè)結(jié)果等等。而參數(shù)(Parameter)則是表示合適的使用情況,比如直尺應(yīng)該去量長度而不能去量角度,計(jì)算器能計(jì)算數(shù)值而不能去畫圖等等。

那么我們?nèi)绾蝸黹喿x函數(shù)的“說明書”呢?我們先來看兩個(gè)例子:
⑴int max(int a,int b);
這個(gè)函數(shù)名稱為max,即求出最大的值。運(yùn)行該函數(shù)以后,產(chǎn)生的結(jié)果是一個(gè)整數(shù)。在數(shù)學(xué)中,我們會(huì)有一元函數(shù)比如f(x)=2*x+3,也會(huì)有多元函數(shù)比如g(x,y)=x/4+y等等。我們?cè)谑褂胒(x)或g(x,y)的時(shí)候括號(hào)內(nèi)數(shù)的位置必須和自變量的字母對(duì)應(yīng),比如g(4,1)=4/4+1=2,此時(shí)x=4并且y=1。我們既不能將其顛倒,也不能寫出g(4)或者g(4,2,1,5)之類的表達(dá)式,否則就是錯(cuò)誤的。程序設(shè)計(jì)中參數(shù)的作用和自變量x,y的作用是類似的。在函數(shù)“說明書”中,也交待了哪個(gè)位置應(yīng)該放置什么類型的參數(shù),我們?cè)谡{(diào)用函數(shù)的時(shí)候要注意參數(shù)的類型、順序、個(gè)數(shù)都要一一對(duì)應(yīng)。

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

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

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

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

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

程序6.1.1和6.1.2的代碼是不完善的,如果僅用這些代碼去編譯會(huì)被告知函數(shù)未定義。由于涉及更多的知識(shí),這些代碼將在下一節(jié)得到完善。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产亚洲精品成人av久久ww | 久久精品国产免费 | 久久久国产精品一区 | 在线视频国产一区 | 波多野吉衣网站 | 日韩成人午夜 | 人人看人人爽 | 亚洲精品一二三区 | 在线观看日韩 | 久久久久中文字幕 | 国产极品一区二区 | 久热精品国产 | 99精品欧美一区二区三区 | 99免费看| 日韩午夜av | 国产精品视频一区二区三区 | 免费在线成人av | 欧美专区在线观看 | 在线国产视频 | 91一区二区三区 | 午夜一区二区三区 | 久久久片 | 日韩一区在线播放 | av在线天堂 | 日韩一区二区三区在线 | 亚洲最大成人 | 国产精品亚洲成在人线 | 黄色免费看视频 | 国产综合精品视频 | 国产精品视频看看 | 日日爱视频 | 99re在线视频| 欧美日韩久久久 | 日韩国产欧美一区二区 | 蜜桃av一区二区三区 | 亚洲精品一区二区三区 | 亚洲人成人一区二区在线观看 | 免费观看一区二区三区 | 久久久久久久久久久蜜桃 | 欧美区国产区 | 91精品久久 |