C++学习(三)入门篇——函数
C++函数分两种:有返回值的和没返回值的
1.有返回值的函数

调用函数流程
如图,sqrt(6.25)为函数调用,被调用的函数叫做被调用函数,包含函数调用的函数叫做调用函数。

参数是发送给函数的信息,返回值是从函数中发送回去的值。
在使用函数之前,C++编译器必须知道函数的参数类型和返回值类型。如果缺少,编译器将不知道如何解释返回值。
C++程序应为程序中使用的每个函数提供原型
sqrt()的函数原型:
double sqrt(double);
如果省略分号,那么这行代码将被解释为一个函数头,并要求接着提供定义该函数的函数体。
提供函数原型有两种方法:
1.在源代码文件中输入函数原型
2.包含文件cmath,其中定义了原型(更好)
不要混淆函数原型和函数定义。原型只描述函数接口(描述发送给函数的信息和返回的信息)。头文件中包含了原型,库文件中包含了函数的编译代码。
程序清单2.4 sqrt.cpp
//sqrt.cpp - - using the sqrt() function #include<iostream>
#include<cmath> 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()后面。
C++学习(三)入门篇——函数的更多相关文章
- PHP学习笔记 - 入门篇(3)
PHP学习笔记 - 入门篇(3) 常量 什么是常量 什么是常量?常量可以理解为值不变的量(如圆周率):或者是常量值被定义后,在脚本的其他任何地方都不可以被改变.PHP中的常量分为自定义常量和系统常量 ...
- PHP学习笔记--入门篇
PHP学习笔记--入门篇 一.Echo语句 1.格式 echo是PHP中的输出语句,可以把字符串输出(字符串用双引号括起来) 如下代码 <?php echo "Hello world! ...
- Java工程师学习指南 入门篇
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Elasticsearch学习记录(入门篇)
Elasticsearch学习记录(入门篇) 1. Elasticsearch的请求与结果 请求结构 curl -X<VERB> '<PROTOCOL>://<HOST& ...
- Python入门篇-函数、参数及参数解构
Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...
- PHP学习笔记 - 入门篇(5)
PHP学习笔记 - 入门篇(5) 语言结构语句 顺序结构 eg: <?php $shoesPrice = 49; //鞋子单价 $shoesNum = 1; //鞋子数量 $shoesMoney ...
- PHP学习笔记 - 入门篇(4)
PHP学习笔记 - 入门篇(4) 什么是运算符 PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. PHP中的算术运算符 算术运算符主要 ...
- netty深入学习之一: 入门篇
netty深入学习之一: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java NI ...
- PHP学习笔记 - 入门篇(2)
PHP入门篇(2) 什么是变量 变量是用于存储值的容器,如下 $var = @"6666" 如何定义变量 定义变量就是像服务器的内存申请空间,用来存储数据,eg: <?php ...
- RabbitMq学习一入门篇(hello world)
简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java,也是众多消息队列中表现不俗的一员,作用就是提高系统的并发 ...
随机推荐
- 红包项目总结---MVC版
起因: 针对传统版的明显缺陷做优化.主要是提升可维护性. 效果 线上: 未发布 线下:http://10.27.5.1/svn/FED/code/hongbao/year-end hb-fac ...
- JavaSE教程-04Java中循环语句for,while,do···while-练习2
1.编写一个剪子石头布对战小程序 该法是穷举法:将所有情况列出来 import java.util.*; public class Game{ public static void main(Stri ...
- css样式,边界和边框,格式和布局
1.大小:width:宽:heigh:高 2.背景:1)background-color:背景颜色 2)background-image:背景图片url路径 3)background-repeat:图 ...
- JavaScript概念总结:作用域、闭包、对象与原型链
1 JavaScript变量作用域 1.1 函数作用域 没有块作用域:即作用域不是以{}包围的,其作用域完成由函数来决定,因而if /for等语句中的花括号不是独立的作用域. 如前述,JS的在函数中定 ...
- JavaScript数组知识点
强类型语言数组特点:连续的,指定好长度, 还要规定好数据类型弱类型语言数组特点:不一定是连续的 可以不用指定长度 不限定数据类型(可以存储任意类型的数据)数组定义方式:1.var arr=new Ar ...
- 浏览器未安装flash插件,js判断直接去官网安装
近期做了个活动页,里面根据需求插入了阿里云的视频,常见的浏览器都支持包括低版本的. 由于浏览器的更新换代很多版本放弃了flash的插件安装,火狐就是其中之一. 未安装flash的浏览器如果打开这个链接 ...
- ArcGIS Earth(原谷歌地球)如何获取高精度矢量地图数据?(shp文件/要素类/kml)
大家好,这次来分享干货.做地理分析的同学,或者需要使用地图却不知道哪里有矢量数据的时候,怎么办呢? 这次,我就告诉大家哪里能自己手工制作矢量点线面数据!注意哦,是自己绘制的. 使用到的软件: ArcG ...
- angularJS插入html及更换iframe的src
html: ng-bind-html <div class="tabs_content" ng-bind-html="specialHtml">&l ...
- 【MFC】利用双缓冲和随机函数rand()实现蒲公英飞舞
原始日期:2014-05-29 22:44 这几天有些懒,几乎没怎么学MFC了,好容易有个题目:用双缓冲实现蒲公英飞舞,想来想去也没想到好方法,索性动手开始 写了 ,这一写,得,出来了,呵呵,无意中产 ...
- javaScript高级程序设计笔记 2
Undefinde Null Boolean Number String 基本类型 Object 引用类型 只有引用类型才能动态的添加属性 赋值基本类型和引用类型也不相同,复制的基本类型的 ...