C++學習(三)入門篇——函數
C++函數分兩種:有返回值的和沒返回值的
1.有返回值的函數
調用函數流程
如圖,sqrt(6.25)為函數調用,被調用的函數叫做被調用函數,包含函數調用的函數叫做調用函數。
參數是發送給函數的信息,返回值是從函數中發送回去的值。
在使用函數之前,C++編譯器必須知道函數的參數類型和返回值類型。如果缺少,編譯器將不知道如何解釋返回值。
C++程序應為程序中使用的每個函數提供原型
sqrt的函數原型:
double sqrt(double);
如果省略分號,那麼這行代碼將被解釋為一個函數頭,並要求接著提供定義該函數的函數體。
提供函數原型有兩種方法:
1.在源代碼文件中輸入函數原型
2.包含文件cmath,其中定義了原型(更好)
不要混淆函數原型和函數定義。原型只描述函數介面(描述發送給函數的信息和返回的信息)。頭文件中包含了原型,庫文件中包含了函數的編譯代碼。
程序清單2.4 sqrt.cpp C++庫函數存儲在庫文件中,如果運行程序時,得到消息指出_sqrt是一個沒有定義的外部函數,很有可能是編譯器不能自動搜索數學庫(編譯器傾向於給函數名添加下劃線前綴——提示它們對程序具有最後的發言權)。
//sqrt.cpp - - using the sqrt function #include
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 月三機齊發