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++学习(三)入门篇——函数的更多相关文章

  1. PHP学习笔记 - 入门篇(3)

    PHP学习笔记 - 入门篇(3) 常量 什么是常量 什么是常量?常量可以理解为值不变的量(如圆周率):或者是常量值被定义后,在脚本的其他任何地方都不可以被改变.PHP中的常量分为自定义常量和系统常量 ...

  2. PHP学习笔记--入门篇

    PHP学习笔记--入门篇 一.Echo语句 1.格式 echo是PHP中的输出语句,可以把字符串输出(字符串用双引号括起来) 如下代码 <?php echo "Hello world! ...

  3. Java工程师学习指南 入门篇

    Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...

  4. Elasticsearch学习记录(入门篇)

    Elasticsearch学习记录(入门篇) 1. Elasticsearch的请求与结果 请求结构 curl -X<VERB> '<PROTOCOL>://<HOST& ...

  5. Python入门篇-函数、参数及参数解构

    Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...

  6. PHP学习笔记 - 入门篇(5)

    PHP学习笔记 - 入门篇(5) 语言结构语句 顺序结构 eg: <?php $shoesPrice = 49; //鞋子单价 $shoesNum = 1; //鞋子数量 $shoesMoney ...

  7. PHP学习笔记 - 入门篇(4)

    PHP学习笔记 - 入门篇(4) 什么是运算符 PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. PHP中的算术运算符 算术运算符主要 ...

  8. netty深入学习之一: 入门篇

    netty深入学习之一: 入门篇 本文代码下载: http://download.csdn.net/detail/cheungmine/8497549 1)Netty是什么 Netty是Java NI ...

  9. PHP学习笔记 - 入门篇(2)

    PHP入门篇(2) 什么是变量 变量是用于存储值的容器,如下 $var = @"6666" 如何定义变量 定义变量就是像服务器的内存申请空间,用来存储数据,eg: <?php ...

  10. RabbitMq学习一入门篇(hello world)

    简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java,也是众多消息队列中表现不俗的一员,作用就是提高系统的并发 ...

随机推荐

  1. 03 编译安装apache的简易配置

    1.监听端口,默认为80,在主配置文件 /etc/httpd24/httpd.conf中可以更改 2.持久连接 Include /etc/httpd24/extra/httpd-default.con ...

  2. Rxjava observeOn()和subscribeOn()初探

    Rxjava这么强大的类库怎么可能没有多线程切换呢? 其中observeOn()与subscribeOn()就是实现这样的作用的.本文主要讲解observeOn()与subscribeOn()的用法, ...

  3. php+mysql 除了设置主键防止表单提交内容重复外的另一种方法

    感觉好久没有更新博客了,一直在做网站及后台,也没有遇到让我觉得可以整理的内容,之前做的一个系统,已经完成了,后来客户又要求加一个功能,大概就是表单提交的时候,约束有一项不能和以前的内容重复,如图 比如 ...

  4. 两个同级div等高布局

    显示效果: css代码如下 .wrap{ overflow:hidden; } .left{ width:30%; background:#09C; } .right{ width:70%; back ...

  5. [原创]adb使用教程v1.0-----by-----使用logcat快速抓取android崩溃日志

    原文再续,书接上回:<使用logcat快速抓取android崩溃日志>中提到的工具包可以下载拉~ <使用logcat快速抓取android崩溃日志>:http://www.cn ...

  6. Activiti工作流几种驳回方式的实现与比较

    最近公司做的一个项目要实现工作流程的收回,驳回等操作,而采用的工作流引擎并不支持驳回功能,这个项目恰好就我和一个实习生一块做,所以这个问题就落到我的头上来解决了... 客户提出的要求是驳回时要记录日志 ...

  7. 解决Linux下面Firefox无法播放mp3的问题

    之前一直使用kali linux ,上班屏蔽噪音都用网易音乐.既然没有Linux客户端,那就网页版吧.不得不说,网易音乐的网页版做的真心赞. 在Kali Linux下面使用Firefox听歌一直都很正 ...

  8. grunt中常见的插件

    /** * 需要用到的文件夹有 js(src) css image html */ gulp是一种自动化构建工具,可以增强我们的工作流程,他是基于 Node.js 构建的,与gruntjs相比,gul ...

  9. 《Python编程从入门到实践》第三章_列表简介

    什么是列表呢? 官方说明就是由一些列按特点顺序排列的元素组成.其实可以看出很多个字符串的有序组合吧,里面的内容可以随时的删除,增加,修改. 下面这个就是一个列表,python打印列表的时候会将中括号和 ...

  10. spring + springmvc+ mybatis 事务管理及控制

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...