| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 第七章:函数--C++编程模块(一) -> 正文阅读 |
|
[C++知识库]第七章:函数--C++编程模块(一) |
7.1复习函数的基本知识要使用C++函数必须完成如下工作
库函数是已经定义和编译好的函数,同时可以使用标准库头文件提供其原型。 自己创建函数必须自行处理这3个方面------定义、提供原型和调用
程序的输出为
执行函数simple时,将暂停执行main中的代码;等函数simple执行完毕后,继续执行main中的代码。 7.1.1定义函数可以将函数分成两类:
没有返回值的函数被称为void函数 通用格式如下
parameterList指定了传递给函数的参数类型和数量。 可选的返回语句return标记了函数的结尾。 无返回值函数实例,将cheers打印n次
参数列表int n意味着用函数cheers()时,应将一个int值作为参数穿个它。 有返回值的函数将生成一个值,并将它返回给调用函数。 其通用格式如下
对于有返回值的函数,必须使用返回语句,以便将值返回给调用函数, 值本身可以是:
只是其结果类型必须为typeName类型或可以转换成为typeName。 对于C++返回值类型有一定的限制:不能是数组 单可以是其他任何类型:
虽然C++不能返回数组,但可以将数组作为结构或对象组成部分来返回。 函数是如何返回值的: 通常,函数通过将返回值复制到指定cpu寄存器或内存单元中来将其返回。随后,调用程序将查看该单元。返回函数和调用函数必须就该内存单元中存储的数据的类型达成一致。函数原型将返回值类型告知调用函数,而函数定义命令被调用函数应返回什么类型的数据。 在原型中提供与定义中相同的信息似乎是多余的,但这样做确有道理。 要让信差从办公室的办公桌取走一些物品,则向信差和办公室中的同事交代自己的亿图,将提高信差顺利完成这项工作的概率。 7.1.2函数原型和函数调用(先调用函数后定义函数)函数原型,它经常隐藏在include文件中。 请留意下面的函数原型
运行情况如下: cheers cheers cheers cheers cheers give me a number :5 A -?foot cube has a volume of 125?cubie feet. cheers cheers cheers cheers cheers cheers cheers cheers cheers(5):这是一个函数调用语句 由于cube()有返回值,因此main()中可以将其用在赋值语句中: double volume = cube(side) 1、为什么需要原型:原型描述了函数到编译器接口,也就是说他将函数返回值类型(如果有的话)以及参数的类型和数量告诉编译器。例如,请看原型如何影响上述程序清单的调用: double volume = cube (side); 首先,原型告诉编译器,cube()有一个double参数。 其次,cube()函数完成计算后,将把返回值放在指定的位置---可能是cpu的寄存器,也可能是内存中。 然后调用函数将从这个位置取得返回值。 避免使用函数原型的唯一方法是,在首次使用函数之前定义它,但这并不总是可行的。零位C++编程风格将main()放在最前面,因为它通常提供程序的整体结构。 2.原型的语法函数原型是一条语句,因为必须以分号结束。获得原型最简单的方法是复制函数定义中的函数头,并添加分号,例如: double cube (double x); 然后函数原型不要求提供变量名,有类型列表就足够了。对于cheer()的原型,程序中只提供了参数类型: void cheer(int); 通常,在原型的参数列表中,可以包括变量名,也可以不包括。 原型中的变量名相当于占位符,因此不必与函数定义中的变量名相同。 3.原型的功能原型可以帮助编译器完成许多工作; 他们可以极大地降低程序出错的几率。 原型确保一下几点:
下面来看一下参数数目不对时将发生的情况。 例如,假设进行了如下调用: double z = cube (); 如果没有函数原型,编译器将允许它通过。当函数被调用时,他将找到cube()调用存放值的位置,并使用这里的值。 在C++中原型不是可选的,因此可以确保不会发生这类错误。 假设提供一个参数,但是参数类型不对,C++将自动将传递的值转换为原型中指定的类型,条件是两者都是算数类型。例如 cheers(cube(2)); 首先程序将int的值2传递给cube(),而后者期望的值是double类型,编译器注意到,cube()原型指定了一个double类型参数,因此将2转换成2.0----一个double值。接下来,cube()返回一个double值(8.0),这个值被用作cheer()的参数。编译器将再一次检查原型,并发现cheer()要求一个int参数,因此将他返回值转换成整数8.通常,原型自动将被传递的参数强制转换成为期望的类型。(但是第8章函数重载可能导致二义性,因此不允许某些自动强制类型转换。) ?在编译阶段进行的原型转化称为静态类型检查。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 4:42:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |