日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

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

詳解C++編程中對于函數的基本使用

2020-05-23 14:15:30
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了詳解C++編程中對于函數的使用,包括函數的參數和返回值以及調用等基本的知識點,需要的朋友可以參考下

形式參數和實際參數

在調用函數時,大多數情況下,函數是帶參數的。主調函數和被調用函數之間有數據傳遞關系。前面已提到:在定義函數時函數名后面括號中的變量名稱為形式參數(formal parameter,簡稱形參),在主調函數中調用一個函數時,函數名后面括號中的參數(可以是一個表達式)稱為實際參數(actual parameter,簡稱實參)。

【例】調用函數時的數據傳遞。

 

 
  1. #include <iostream> 
  2. using namespace std; 
  3. int max(int x,int y) //定義有參函數max 
  4. int z; 
  5. z=x>y?x:y; 
  6. return(z); 
  7. int main( ) 
  8. int a,b,c; 
  9. cout<<"please enter two integer numbers:"
  10. cin>>a>>b; 
  11. c=max(a,b);//調用max函數,給定實參為a,b。函數值賦給c 
  12. cout<<"max="<<c<<endl; 
  13. return 0; 

運行情況如下:

 

 
  1. please enter two integer numbers:2 3↙ 
  2. max=3 

有關形參與實參的說明:

1) 在定義函數時指定的形參,在未出現函數調用時,它們并不占內存中的存儲單元,因此稱它們是形式參數或虛擬參數,表示它們并不是實際存在的數據,只有在發生函數調用時,函數max中的形參才被分配內存單元,以便接收從實參傳來的數據。在調用結束后,形參所占的內存單元也被釋放。

2) 實參可以是常量、變量或表達式,如max(3, a+b);但要求a和b有確定的值。以便在調用函數時將實參的值賦給形參。

3) 在定義函數時,必須在函數首部指定形參的類型(見示例程序第3行)。

4) 實參與形參的類型應相同或賦值兼容。例4.2中實參和形參都是整型,這是合法的、正確的。如果實參為整型而形參為實型,或者相反,則按不同類型數值的賦值規則進行轉換。例如實參a的值為3.5,而形參x為整型,則將3.5轉換成整數3,然后送到形參b。字符型與整型可以互相通用。

5) 實參變量對形參變量的數據傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在調用函數時,編譯系統臨時給形參分配存儲單元。

請注意:實參單元與形參單元是不同的單元。下圖表示將實參a和b的值2和3傳遞給對應的形參x和y。

詳解C++編程中對于函數的基本使用

調用結束后,形參單元被釋放,實參單元仍保留并維持原值。因此,在執行一個被調用函數時,形參的值如果發生改變,并不會改變主調函數中實參的值。例如,若在執行max函數過程中形參x和y的值變為10和15,調用結束后,實參a和b仍為2和3,見上圖。

函數的返回值

1) 函數的返回值是通過函數中的return語句獲得的。return語句將被調用函數中的一個確定值帶回主調函數中去。

return語句后面的括號可以要,也可以不要。return后面的值可以是一個表達式。

2) 函數值的類型。既然函數有返回值,這個值當然應屬于某一個確定的類型,應當在定義函數時指定函數值的類型。

3) 如果函數值的類型和return語句中表達式的值不一致,則以函數類型為準,即函數類型決定返回值的類型。對數值型數據,可以自動進行類型轉換。

函數調用的一般形式

函數調用的一般形式為:

 

 
  1. 函數名([實參表列]); 

如果是調用無參函數,則“實參表列”可以沒有,但括號不能省略。如果實參表列包含多個實參,則各參數間用逗號隔開。實參與形參的個數應相等,類型應匹配(相同或賦值兼容)。實參與形參按順序對應,一對一地傳遞數據。但應說明,如果實參表列包括多個實參,對實參求值的順序并不是確定的。

函數調用的方式

按函數在語句中的作用來分,可以有以下3種函數調用方式:

(1)函數語句

把函數調用單獨作為一個語句,并不要求函數帶回一個值,只是要求函數完成一定的操作。如例4.1中的printstar( );

(2)函數表達式

函數出現在一個表達式中,這時要求函數帶回一個確定的值以參加表達式的運算。如c=2*max(a, b);

(3)函數參數

函數調用作為一個函數的實參。如:

 

 
  1. m=max(a, max(b, c)); //max(b, c)是函數調用,其值作為外層max函數調用的一個實參 

對被調用函數的聲明和函數原型

在一個函數中調用另一個函數(即被調用函數)需要具備以下條件:

首先被調用的函數必須是已經存在的函數。

如果使用庫函數,一般還應該在本文件開頭用#include命令將有關頭文件“包含”到本文件中來。

如果使用用戶自己定義的函數,而該函數與調用它的函數(即主調函數)在同一個程序單位中,且位置在主調函數之后,則必須在調用此函數之前對被調用的函數作聲明。

所謂函數聲明(declare),就是在函數尚在未定義的情況下,事先將該函數的有關信息通知編譯系統,以便使編譯能正常進行。

【例】對被調用的函數作聲明。

 

 
  1. #include <iostream> 
  2. using namespace std; 
  3. int main( ) 
  4. float add(float x,float y); //對add函數作聲明 
  5. float a,b,c; 
  6. cout<<"please enter a,b:"
  7. cin>>a>>b; 
  8. c=add(a,b); 
  9. cout<<"sum="<<c<<endl; 
  10. return 0; 
  11. float add(float x,float y)//定義add函數 
  12. float z; 
  13. z=x+y; 
  14. return (z); 

運行情況如下:

 

 
  1. please enter a, b: 123.68 456.45↙ 
  2. sum=580.13 

注意:對函數的定義和聲明不是同一件事情。定義是指對函數功能的確立,包括指定函數名、函數類型、形參及其類型、函數體等,它是一個完整的、獨立的函數單位。而聲明的作用則是把函數的名字、函數類型以及形參的個數、類型和順序(注意,不包括函數體)通知編譯系統,以便在對包含函數調用的語句進行編譯時,據此對其進行對照檢查(例如函數名是否正確,實參與形參的類型和個數是否一致)。

其實,在函數聲明中也可以不寫形參名,而只寫形參的類型,如

 

 
  1. float add(floatfloat); 

這種函數聲明稱為函數原型(function prototype)。使用函數原型是C和C++的一個重要特點。它的作用主要是: 根據函數原型在程序編譯階段對調用函數的合法性進行全面檢查。如果發現與函數原型不匹配的函數調用就報告編譯出錯。它屬于語法錯誤。用戶根據屏幕顯示的出錯信息很容易發現和糾正錯誤。

函數原型的一般形式為:

 

 
  1. 函數類型 函數名(參數類型1, 參數類型2…); 

 

 
  1. 函數類型 函數名(參數類型1 參數名1, 參數類型2 參數名2…); 

第(1)種形式是基本的形式。為了便于閱讀程序,也允許在函數原型中加上參數名,就成了第(2)種形式。但編譯系統并不檢查參數名。因此參數名是什么都無所謂。上面程序中的聲明也可以寫成

 

 
  1. float add(float a, float b); //參數名不用x、y,而用a、b 

效果完全相同。

應當保證函數原型與函數首部寫法上的一致,即函數類型、函數名、參數個數、參數類型和參數順序必須相同。在函數調用時函數名、實參類型和實參個數應與函數原型一致。

兩點說明:

1) 前面已說明,如果被調用函數的定義出現在主調函數之前,可以不必加以聲明。因為編譯系統已經事先知道了已定義的函數類型,會根據函數首部提供的信息對函數的調用作正確性檢查。

有經驗的程序編制人員一般都把main函數寫在最前面,這樣對整個程序的結構和作用一目了然,統覽全局,然后再具體了解各函數的細節。此外,用函數原型來聲明函數,還能減少編寫程序時可能出現的錯誤。由于函數聲明的位置與函數調用語句的位置比較近,因此在寫程序時便于就近參照函數原型來書寫函數調用,不易出錯。所以應養成對所有用到的函數作聲明的習慣。這是保證程序正確性和可讀性的重要環節。

2) 函數聲明的位置可以在調用函數所在的函數中,也可以在函數之外。如果函數聲明放在函數的外部,在所有函數定義之前,則在各個主調函數中不必對所調用的函數再作聲明。例如:

 

 
  1. char letter(charchar); //本行和以下兩行函數聲明在所有函數之前且在函數外部 
  2. float f(floatfloat); //因而作用域是整個文件 
  3. int i(floatfloat); 
  4. int main( ) 
  5. {…}//在main函數中不必對它所調用的函數作聲明 
  6. char letter(char c1, char c2) //定義letter函數 
  7. {…} 
  8. float f(float x, float y)//定義f函數 
  9. {…} 
  10. int i(float j, float k) //定義i函數 
  11. {…} 

如果一個函數被多個函數所調用,用這種方法比較好,不必在每個主調函數中重復聲明。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
日韩免费视频一区二区| 国产一区深夜福利| 国产小视频免费在线观看| 中文字幕无线码一区| 国产绿帽一区二区三区| 中文字幕亚洲乱码| 欧美日韩中文国产| 国产不卡在线| 国产三级第一页| 日韩精品―中文字幕| 亚洲综合在线视频| 亚洲欧美中文字幕| 一级片在线播放| 国产区高清在线| 久久永久免费视频| 中文字幕精品视频| 精品成a人在线观看| 中文字幕日韩欧美| 欧美日韩91| 91精品视频观看| 欧美专区中文字幕| 国产偷久久久精品专区| 精品网站999www| 亚洲乱码视频| 日韩在线小视频| 国产一区三区三区| 国产日韩中文在线| 免费视频国产一区| 黄色一级大片在线免费看国产一| 日韩中文字幕亚洲| 欧美日韩中文字幕在线观看| av免费网站在线| 91精品国产自产观看在线| 国产aa精品| 一本一道综合狠狠老| 日韩精品在线免费看| www.尤物.com| 阿v免费在线观看| 精品国产91乱高清在线观看| 精品久久久精品| 欧洲精品二区| 亚洲最新免费视频| 国产xxx在线| 中文字幕欧美人妻精品一区蜜臀| 九色蝌蚪视频在线| 日本亚洲欧美三级| 中文字幕日韩第一页| 亚洲中午字幕| 精品日韩视频在线观看 | 国产欧美自拍一区| 日韩精品视频中文字幕| 亚洲二区自拍| 国产高清在线视频| 中文字幕 日韩 欧美| 日本国产一区| 日韩欧美色综合| 色综合婷婷久久| 精品视频三区| 国产欧美久久久精品影院| www日韩在线观看| 久久久精品欧美| 久精品在线观看| 日韩.欧美.亚洲| 国产三级精品在线观看| 日韩免费精品| 国产午夜在线观看| 蜜桃精品视频| 日韩免费高清一区二区| 精品成a人在线观看| 一级片免费网站| 精品久久久久久无| 欧美黄页在线免费观看| 一区二区三区在线播放视频| 99pao成人国产永久免费视频| 人成免费在线视频 | 一区二区三区精品99久久| 国产精品一区二区三区免费观看| 91精品蜜臀在线一区尤物| av不卡免费看| 一区精品在线播放| 国产乱国产乱300精品| 不卡一二三区| 国产欧美日韩亚州综合| 午夜国产福利在线观看| 中文字幕欧美日韩在线| 日韩久久精品成人| 日本免费看黄| 精品视频久久| 欧美一级在线免费| 在线观看区一区二| 国产高清在线视频| 久久久久黄色| 91精品国产自产| 日韩在线观看视频一区二区| 免费高清特黄a大片| 亚洲 欧美 日韩系列| 欧美色欧美亚洲高清在线视频| 亚洲一级在线| 精品久久久久久综合日本欧美| 日韩在线不卡| а√天堂中文在线资源8| 香蕉视频亚洲一级| 亚洲va韩国va欧美va精品| 国产区视频在线观看| 五月综合激情日本mⅴ| 国产aa精品| 亚洲黄色一区二区| 精品亚洲国内自在自线福利| 亚洲欧洲在线观看av| 日韩欧美亚洲区| 欧美日韩在线观看成人| 欧美日韩三级在线| 91精品国产综合久久福利| 国产99在线 | 亚洲| 国产欧美一级| 日韩欧美国产高清| 中文字幕第一页在线| 欧美日韩国产亚洲一区| 国产在成人精品线拍偷自揄拍| 一级特黄aaa大片在线观看| 91精品国产高清久久久久久| 91精品视频观看| 日韩中文字幕91| 日本精品在线中文字幕| 日韩视频精品在线观看| 日韩中文字幕在线视频播放| 999精品视频在线观看播放| 欧美日韩在线中文字幕| 日韩高清不卡| 一区二区视频免费看| 中文字幕精品在线视频| 欧美一级在线观看| 拍真实国产伦偷精品| 精品在线91| 一区三区二区视频| 黄色片免费看| 欧美国产一级| 日韩三级视频在线播放| 欧美日韩一二三| 久久精品欧美日韩精品| 日韩视频一区| wwwww亚洲| 日韩一级二级三级| 中文国产字幕在线观看| 91精品国产综合久久精品app | 欧美日韩国产中文精品字幕自在自线| 精品乱子伦一区二区| 精品亚洲综合| 中文字幕在线国产| 亚洲免费看av| 欧美日韩国产免费观看| 国产日韩精品在线看| 日韩精品视频中文在线观看| 国产福利久久久| 欧美三级在线播放| 日韩在线高清| 欧美不卡一区二区| 日本不卡高清视频一区| 精品久久久三级| 国产综合成人久久大片91| wwwav91com| 日韩欧美在线中文字幕| 欧美日本精品| 日韩国产欧美三级| 日韩视频第二页| 国自产拍在线网站网址视频| 亚洲a中文字幕| 在线日韩中文字幕| 91精品免费看| 日韩欧美资源站| 精品国产99久久久久久| 欧美日韩国产不卡| 欧美日韩高清不卡| 日韩1区在线| 久久久精品国产免费观看同学| 日韩免费视频一区二区| 亚洲小说春色综合另类网蜜桃| 欧美日韩精品高清| 国产日产一区二区三区| 99精品视频国产| 日韩欧美中文在线视频| 精品1区2区3区| 国产超级va在线视频| 91精品国产色综合久久不卡蜜臀 | 日韩欧美色综合| 欧美日韩国产高清一区| 国产欧美综合在线| 国产裸体歌舞团一区二区 | 国产激情99| 亚洲a中文字幕| 国内精品不卡| 日韩精品中文字幕第1页| 91麻豆精品在线| 91久久精品视频| 91精品国产综合久久久蜜臀粉嫩 | 天天综合天天做| 91久久久久| 欧美日韩国产成人| 欧美二区在线观看| 一二三区精品福利视频| 日韩在线一区二区视频| 中文字幕亚洲区| 欧美不卡一二三| 日本亚洲欧美天堂免费| 日韩av一区二区在线| 在线欧美一级视频| 91午夜在线| 欧美日韩国产一二| 一级免费a一片| eeuss一区| 欧美日韩激情一区二区三区| 91精品国产综合久久香蕉的特点| 在线日韩欧美| 日韩精品乱码av一区二区| 欧美日韩国产91| 欧美日韩国产高清视频| 欧美91精品| aaa免费看大片| 日本精品在线播放| 1区2区3区在线视频| 亚洲永久免费视频| 日韩在线三区| 久久久99久久| 欧美日韩精品在线视频| 国产在线一区二区视频| 久久久精品福利| 中文精品电影| 欧美日韩国产一区中文午夜| 欧美日韩激情一区二区三区| 一区二区不卡在线| 久久香蕉av| 91精品国产91| 精品极品三级久久久久| 国产乱国产乱300精品| 欧美不卡视频一区发布| 不卡视频一区二区三区| 欧美日韩精品在线 | 久久久久久久久99精品| 欧美日韩亚洲第一| 国产成人精品免费网站| 91九色精品视频| 中文字幕在线观看网址| 久久中文免费视频| 日韩在线视频网| 国产欧美日韩精品在线观看| 国产福利在线播放| 91精品国产综合久久香蕉最新版| www.老鸭窝.com| 欧美亚洲国产激情| 欧美日韩在线三级| 99精品999| 精品一区二区三区中文字幕 | 欧美一级久久久久久久久大| 国产91大片| 视频一区日韩| 一区二区在线高清视频| 福利一区二区| 日韩欧美国产黄色| 中文字幕在线观看国产| 国产乱国产乱老熟300部视频| 国产欧美日韩在线播放| 久久精品一级爱片| 国产视频中文字幕在线观看| 国产成人精品三级| 久久久久蜜桃| а√天堂中文在线资源8| 大香一本蕉伊线亚洲网| 91精品国产91久久久久| 欧美日韩性视频| 精品在线一区二区| 亚洲成av人片| 国产黄在线看| 天天在线视频色| 日韩欧美在线网站| 91精品国产自产在线| 91精品国产丝袜白色高跟鞋| 一级片免费在线播放| 国产精久久久久| 日韩免费视频| 粉嫩粉嫩芽的虎白女18在线视频| 国产一级片播放| 日韩精品在线免费播放| 精品人妻一区二区三区视频| 国产成人精品三级| 国产伦精品免费视频| 在线精品日韩| 中文字幕最新精品| 欧美日韩激情在线一区二区三区| 婷婷精品视频| 日韩中文字幕网| 午夜一区二区视频| 日本а中文在线天堂| 欧洲精品在线一区| 欧美人妻一区二区三区| 精品综合久久久久| 成人欧美亚洲| 中文字幕不卡三区| 91久久中文| 国产91欧美| 欧美日韩国产在线看| 91精品视频在线| 中文字幕日韩欧美在线| 婷婷中文字幕一区三区| 日韩在线视频网| 国产成人精品免费久久久久| 亚洲第一网中文字幕| 精品国产91乱高清在线观看| 日韩va亚洲va欧洲va国产| 日韩欧美国产高清91| 亚洲免费在线观看av| 一区二区三区精品99久久| 二区三区中文字幕| 国产日韩中文字幕在线| 精品1区2区3区| 亚洲福利一区二区三区| 国产一级免费在线观看| 亚洲高清在线免费| 天天摸日日摸狠狠添| 欧美三级日韩三级| 中文精品在线| 日韩精品在线看| 国产一二三视频| 一级片免费网站| 国产成人精品网址| 亚洲中午字幕| 日韩中文字幕亚洲| 日韩www在线| 亚洲视频中文字幕| 中文字幕在线亚洲| 国产精品视频福利一区二区| 亚洲伊人婷婷| 亚洲第一精品在线| 日本精品国语自产拍在线观看| 伊人网站在线| 亚洲 欧美 精品| 国产高清一级片| 日韩久久精品成人| 欧美 日韩 国产在线| 亚洲图片小说综合| 亚洲免费在线视频一区 二区| 国产资源在线观看入口av| 中文不卡在线| 精品网站999www| 精品中文字幕视频| 91久久久久| 久久激情一区| 日本精品二区| 欧美 日韩 国产 在线| 国产激情在线播放| 欧美日韩国产中文精品字幕自在自线 | 精品福利一区二区三区| 欧美日韩激情一区| 91精品日本| 国产欧美日韩在线视频| 亚洲黄色一区二区| 欧美专区中文字幕| 精品视频国产| 亚洲制服丝袜一区| 久久婷婷综合国产| 黄色片网站在线| 欧美婷婷精品激情| 亚洲日本精品视频| 成人禁用看黄a在线| 欧美日韩亚洲91| 久久视频一区| 欧美 日韩 综合| 国产999在线观看| 久久精品在线免费观看| 日韩免费视频一区| 日韩国产欧美| www.日韩免费| 日韩欧美国产1| 99精品在线播放| 日韩欧美国产三级| 欧美一级日韩一级| 欧美不卡一二三| 亚洲国产福利视频| 快she精品国产999| 久久久91精品国产| 日韩欧美综合在线| 国产激情久久久| 精品999在线| 欧美国产日韩在线播放| 成人一区二区不卡免费| 美女尤物久久精品| 国产欧美久久久| a视频免费在线观看| 中文字幕在线观看精品| 91精品国产自产在线观看永久∴| 欧美 日韩 中文字幕| 一区二区三区中文字幕在线观看| 欧美三级网址| 国产欧美日韩在线视频| 成人禁用看黄a在线| 中文字幕在线看视频国产欧美| 欧美日韩高清| 欧美日韩综合在线| 精品人妻二区中文字幕| 国产欧美日韩三级| 午夜福利一区二区三区|