當前位置:
首頁 > 知識 > C++學習(三)入門篇——函數

C++學習(三)入門篇——函數

C++函數分兩種:有返回值的和沒返回值的

1.有返回值的函數

C++學習(三)入門篇——函數

調用函數流程

如圖,sqrt(6.25)為函數調用,被調用的函數叫做被調用函數,包含函數調用的函數叫做調用函數。

C++學習(三)入門篇——函數

參數是發送給函數的信息,返回值是從函數中發送回去的值。

在使用函數之前,C++編譯器必須知道函數的參數類型和返回值類型。如果缺少,編譯器將不知道如何解釋返回值。

C++程序應為程序中使用的每個函數提供原型

sqrt的函數原型:

double sqrt(double);

如果省略分號,那麼這行代碼將被解釋為一個函數頭,並要求接著提供定義該函數的函數體。

提供函數原型有兩種方法:

1.在源代碼文件中輸入函數原型

2.包含文件cmath,其中定義了原型(更好)

不要混淆函數原型和函數定義。原型只描述函數介面(描述發送給函數的信息和返回的信息)。頭文件中包含了原型,庫文件中包含了函數的編譯代碼。

程序清單2.4 sqrt.cpp
//sqrt.cpp - - using the sqrt function #include #include int main { using namespace std; double area; cout << "Enter the floor area,in square feet,of your home:"; cin >> area; cin.get; double side; side = sqrt(area); cout << "That"s the equivalent of a square " << side << " feet to the side." << endl; cout << "How fascinating!" << endl; cin.get; return 0; }

C++庫函數存儲在庫文件中,如果運行程序時,得到消息指出_sqrt是一個沒有定義的外部函數,很有可能是編譯器不能自動搜索數學庫(編譯器傾向於給函數名添加下劃線前綴——提示它們對程序具有最後的發言權)。

C++允許在程序的任何地方聲明新變數,也可以在創建變數時對它賦值

double side=sqrt(area) 叫做初始化

cin知道如何將輸入流中的信息轉化為double型,cout知道如何將double類型插入到輸出流中,這些對象都很智能化。

2.函數變體

有些函數需要多項信息

如:pow

double pow(double,double);第一個參數為底,第二個參數為指數的冪

answer=pow(5.0,8.0)

另外一些函數不接受任何參數

int rand(void);該函數不接受任何參數,並返回一個隨機整數

省略void,括弧為空,則是一個不接受任何參數的隱式聲明

如:myGuess=rand;

C++中,函數調用中必須包括括弧,即使沒有參數

還有些函數不需要返回值,如顯示一個時刻表,在屏幕中顯示就好

void bucks(double);

由於不返回值,不能放在賦值語句或其他表達式中,而是一條純粹的函數調用語句

bucks(1234.56);

在有些語言中,有返回值的叫函數,沒有的叫過程

標準C庫提供了140多個預定義的函數,如果其中的函數滿足要求則調用它們。

不滿足,就自己寫。

對於庫函數,通常把原型放在main定義之前,並提供新函數的源代碼,放在main後面。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

設計模式解密(10)-迭代器模式
架構之路 之 Nginx實現負載均衡
阿里巴巴2018屆應屆生在線編程測驗-研發工程師C/C++
Redis 錯誤1067:進程意外終止,Redis不能啟動,Redis啟動不了

TAG:科技優家 |

您可能感興趣

MATLAB入門篇 數值類型
AMD二代銳龍CPU家族將更新:入門四核+45瓦節能版現身
入門首選 七彩虹戰斧C.B250M-HD魔音版
PyTorch:60分鐘入門學習
勝創推出入門級M.2 PCIe SSD:連續讀取速度1.6GB/s
三星Galaxy S10系列新機渲染圖曝光:S10E為入門版
MATLAB入門篇 概述
定位入門!HTC Desire 12曝光:聯發科晶元/3G內存
入門NVDLA(下)
硬核設計之路 篇四:每天5分鐘,輕鬆學會PS—Adobe Ps CC 2018 初階入門教程之圖像菜單詳解
音樂入門組合推薦——Outlaw RR2180合併功放+ATC SCM11書架箱
第4代樹莓派發布:4K雙屏、A72內核、最高4GB RAM…性能堪比入門級×86 PC!
DOTA2萌新入門—英雄篇
15800元起,金城入門級拉力K-CROSS國四版本發布,增配ABS和輻條輪
發燒入門選(四)一台CD機解千愁,EMOTIVA ERC-3
入門級遊戲PC也要五六千?華碩PRIME B365M-A裝機秀
單細胞入門-讀一篇scRNA-seq綜述
三星全新入門級Galaxy M系列首個跑分數據曝光
三星Galaxy A10s/Moto E6/LG X2(2019)三款入門機規格曝光
三星加推 Galaxy S10E 入門版!S10 系列 2 月三機齊發