C++ Primer 第五版 第6章 6.1——函数及函数定义及调用阅读笔记
习题答案请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用习题答案
目录
6.1 函数基础
函数定义
函数调用
函数的形参和实参
函数的返回类型
局部静态对象
函数声明
头文件中进行函数声明
6.1 函数基础
函数定义
(1)函数返回类型;(2)函数名称;(3)函数形参列表:0个或者多个都可以;(4)函数体:执行功能
函数调用
函数名称(实参列表)
例子:
编写函数:求1*2*3*4*5 =120
int fact(int val)
{int ret = 1;while(val > 1)ret *= val--;return ret;
}
调用函数:
int main()
{int j = fact(5);cout << "5! is" << j << endl;return 0;
}
函数的形参和实参
(1)数量和类型必须对应
(2)形参列表,必须有类型声明,即使类型相同,也必须同时声明,如int f4(int v1, int v2)(这里是一个细节,一定得注意!!)
函数的返回类型
(1)特殊的返回类型:void——表示无返回值
(2)函数和数组不能作为函数的返回类型,指向函数和数组的指针或引用可以作为返回类型(这里也是一个细节,要注意!!)
局部静态对象
使得局部变量的作用域贯穿函数调用及之后的时间,则就将局部变量定义成static类型获得局部静态对象(作用域贯穿整个程序,程序终止才会被销毁)(细节,注意!!)
例子:统计函数被调用多少次
将局部变量定义为局部静态变量:
# include <iostream>
#include <string>
#include <vector>
using namespace std;size_t count_calls()
{// 局部静态变量,调用结束后仍然有效static size_t count = 0;return ++count;
}int main()
{for (size_t i = 0; i != 10; ++i)cout << count_calls() << endl;return 0;
}
运行结果
对比,局部变量未定义为静态局部变量 :
# include <iostream>
#include <string>
#include <vector>
using namespace std;
size_t count_calls()
{// 局部变量,调用结束后就销毁size_t count = 0;return ++count;
}int main()
{for (size_t i = 0; i != 10; ++i)cout << count_calls() << endl;return 0;
}
通过对比,可以明显发现静态局部变量的作用!!!
函数声明
(1)函数在使用时必须进行声明
(2)函数声明无须函数体,也可以省略形参(细节,注意!!)
(3)在声明时,最好带上形参有助于我们理解
例子:上边的例子,计算函数调用次数的函数
size_t count_calls()
{// 局部变量,调用结束后就销毁size_t count = 0;return ++count;
}
声明时为:size_t count_calls()
头文件中进行函数声明
(1)将函数声明放在头文件中
(2)定义函数的源文件中一定得包含声明函数的头文件(细节,注意!!)
例子:
# include <iostream>
using namespace std;int fact(int val); //阶乘函数的声明,val可以省略,但最好加上
int abs(int val); // 求绝对值的函数声明
C++ Primer 第五版 第6章 6.1——函数及函数定义及调用阅读笔记相关推荐
- C++ Primer 第五版 第7章类 7.1——类讲解(成员函数、非成员函数、构造函数)习题答案
理论讲解请参考:C++ Primer 第五版 第7章类 7.1--类讲解(成员函数.非成员函数.构造函数) 目录 7.1 定义抽象数据类型习题答案 7.4&7.5 7.6&7.7 7. ...
- C++ Primer 第五版 第7章类 7.1——类讲解(成员函数、非成员函数、构造函数)
习题答案请参考:C++ Primer 第五版 第7章类 7.1--类讲解(成员函数.非成员函数.构造函数)习题答案 目录 7.1 类讲解(成员函数.非成员函数.构造函数) 成员函数 this cons ...
- C++ Primer 第五版 第6章——函数阅读笔记及习题答案(完整,附C++代码)
C++Primer(第五版)第6章函数的阅读笔记及课后习题答案总结,课后习题答案是自己学习写出来的,如果有误,欢迎指正 还不完整,后续会更新添加 阅读笔记 C++ Primer 第五版 第6章 6.1 ...
- C++ Primer 第五版 第6章 6.7——函数指针习题答案
理论请参考:C++ Primer 第五版 第6章 6.7--函数指针阅读笔记 目录 6.7 函数指针习题答案 6.54 6.55 6.56 6.7 函数指针习题答案 6.54 vector是指向该函数 ...
- C++ Primer 第五版 第6章 6.7——函数指针阅读笔记
习题答案请参考:C++ Primer 第五版 第6章 6.7--函数指针习题答案 目录 6.7 函数指针 使用函数指针 返回指向函数的指针 6.7 函数指针 声明一个函数指针,只需要用指针替代函数名即 ...
- C++ Primer 第五版 第6章 6.3——函数返回类型和return语句阅读笔记
习题答案请参考:C++ Primer 第五版 第6章 6.3--函数返回类型和return语句习题答案 目录 6.3 返回类型和return语句 6.3.1 无返回值函数 无返回值函数的特性 6.3. ...
- C++ Primer 第五版 第6章 6.3——函数返回类型和return语句习题答案
理论讲解请参考:C++ Primer 第五版 第6章 6.3--函数返回类型和return语句阅读笔记 目录 6.31 6.32 6.33 6.34 6.35 6.36 6.38 6.31 返回引用无 ...
- C++ Primer 第五版 第6章 6.2——函数参数传递习题答案
理论讲解请参考:C++ Primer 第五版 第6章 6.2--函数参数传递阅读笔记 目录 6.10 指针形参交换两个数 6.12 引用形参交换两个数 6.13 6.14 6.15 6.16 6.17 ...
- C++ Primer 第五版 第6章 6.2——函数参数传递阅读笔记
习题答案请参考:C++ Primer 第五版 第6章 6.2--函数参数传递习题答案 目录 6.2 函数参数传递 6.2.1 传值参数(值传递) 指针形参 6.2.2 传引用参数(引用传递) 使用引用 ...
- C++ Primer 第五版 第6章 6.1——函数及函数定义及调用习题答案
理论讲解请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用阅读笔记 目录 目录 6.1 形参和实参的区别 6.2 函数语法考察 6.4 交互式输入数字,计算阶乘 6.5 输出实 ...
最新文章
- 2-结构体的最后一个成员的定义-C语言中的柔性数组-
- 爬虫为什么使用asyncio以及邮件系统为什么使用celery
- 玩转oracle 11g(16):命令学习4
- 30秒解决电脑越用越卡的大众常见难题
- 既稳又狂!黑鲨游戏手机2官宣发布时间:3月18日北京见
- storm中worker、executor、task之间的关系
- Python 数据结构 树
- Atitit 同步获取阻塞式命令行输出 费阻塞式样命令行执行完毕后退出了,可以直接获取其输出 	InputStream is = new StreamGobbler(session.getStd
- 腾讯云服务器安装AMH控制面板
- 常用测试工具-----IPOP
- 最近火爆的美团饿了么外卖cps分销裂变小程序搭建及推广秘籍(附搭建源码)
- 单因素方差分析(R)
- Google Analytics与百度统计比较
- THREEJS 模型调整旋转中心
- 计算机无法使用打印机预览,电脑中excel打印预览无法查看的处理方法
- Emacs、cedet、ecb
- STM32F0/F1/F2/F3/F4/F7编程数据中英文手册(所有型号中文参考手册)
- 信标链 Altair 升级在即!将带来哪些好处?
- 在CSS中创建径向菜单
- 机器视觉 手部关键点检测(手部识别)安卓应用App(Hand Tracking)基于mediapipe。
热门文章
- python plot map_python的colormap总结(matplotlib+ncl+气象家园调色盘)
- web用户登录界面设计_UI设计师怎样做界面设计?
- 蜂鸟笔记本swift接口_蜂鸟Swift 5可清新文艺、又可尊贵典雅
- python实现dos攻击_dos攻击原理及攻击实例
- MySQL+create+base,MySQL中CREATE DATABASE和CREATE SCHEMA的区别
- linux修改ip配置文件_协助调试Linux服务器经验分享
- utc时间转换为时分秒_C语言操作时间函数,实现定时执行某个任务小程序
- php 原理 阮一峰,全文Feed的终极解决方案
- python 雪花id_基于python实现雪花算法过程详解
- Eclipse直接运行算法第4版例子(重定向和读取指定路径文件)