理论讲解请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用阅读笔记


目录

目录

6.1 形参和实参的区别

6.2 函数语法考察

6.4 交互式输入数字,计算阶乘

6.5 输出实参的绝对值

6.6 形参、局部变量、静态局部变量

6.7 函数调用

6.8 函数声明在头文件


6.1 形参和实参的区别

形参:函数定义时的参数,无赋值的变量

实参:调用函数时使用的参数,有赋值的变量,形参的初始值


6.2 函数语法考察

(a)返回类型不匹配(考察函数返回类型)

(b)无函数返回类型(考察函数返回类型)

(c)形参列表参数不能相同(考察函数形参列表)

(d)函数体应该使用花括号括起来,一句或者无语句都得用花括号括起来(考察函数体)


6.4 交互式输入数字,计算阶乘

交互式输入数字,计算阶乘

# include <iostream>
#include <string>
#include <vector>
using namespace std;
int fact(int val)
{int ret = 1;while (val > 1)ret *= val--;return ret;
}
int main()
{cout << "Please enter a number:";int j;cin >> j;int J=fact(j);cout <<j<<"! is " << J << endl;return 0;
}

运行结果


6.5 输出实参的绝对值

# include <iostream>
#include <string>
#include <vector>
using namespace std;
// 求实参的绝对值
int abs(int val)
{int abs = 0;if (val > 0)abs = val;elseabs = val * -1;return abs;
}
int main()
{cout << "Please enter a number:";int j;cin >> j;int J=abs(j);cout << j << "'s abs is " << J << endl;return 0;
}

运行结果:


6.6 形参、局部变量、静态局部变量

形参:函数定义时的参数,无赋值的变量,属于局部变量的一种

局部变量:形参和函数体内部定义的变量成为局部变量

静态局部变量:能够贯穿函数调用结束及之后的时间,值到程序终止才被销毁

# include <iostream>
#include <string>
#include <vector>
using namespace std;// val 为形参
int fun(int val)
{int N = 0;  //局部变量,调用结束即结束cout << val << ":  ";// 局部静态变量,调用结束后仍然有效,记录函数调用的次数static int count = 0; // 显示函数调用次数,因为N是局部变量,值不会存储,一直为0int Number = N + (++count);  return Number;
}int main()
{for (int i= 0; i != 5; ++i)cout << fun(i) << endl;return 0;
}

运行结果:


6.7 函数调用

# include <iostream>
#include <string>
#include <vector>
using namespace std;// val 为形参
int fun(int val)
{// 局部静态变量,调用结束后仍然有效,记录函数调用的次数static int count = 0;  cout << "The number of " << val+1 << " is:  ";return count++;
}int main()
{for (int i= 0; i != 5; ++i)cout << fun(i) << endl;return 0;
}

运行结果


6.8 函数声明在头文件

# include <iostream>
using namespace std;int fact(int val);  //阶乘函数的声明,val可以省略,但最好加上
int abs(int val);   // 求绝对值的函数声明

C++ Primer 第五版 第6章 6.1——函数及函数定义及调用习题答案相关推荐

  1. C++ Primer 第五版 第7章类 7.1——类讲解(成员函数、非成员函数、构造函数)习题答案

    理论讲解请参考:C++ Primer 第五版 第7章类 7.1--类讲解(成员函数.非成员函数.构造函数) 目录 7.1 定义抽象数据类型习题答案 7.4&7.5 7.6&7.7 7. ...

  2. C++ Primer 第五版 第7章类 7.1——类讲解(成员函数、非成员函数、构造函数)

    习题答案请参考:C++ Primer 第五版 第7章类 7.1--类讲解(成员函数.非成员函数.构造函数)习题答案 目录 7.1 类讲解(成员函数.非成员函数.构造函数) 成员函数 this cons ...

  3. C++ Primer 第五版 第6章——函数阅读笔记及习题答案(完整,附C++代码)

    C++Primer(第五版)第6章函数的阅读笔记及课后习题答案总结,课后习题答案是自己学习写出来的,如果有误,欢迎指正 还不完整,后续会更新添加 阅读笔记 C++ Primer 第五版 第6章 6.1 ...

  4. C++ Primer 第五版 第6章 6.7——函数指针习题答案

    理论请参考:C++ Primer 第五版 第6章 6.7--函数指针阅读笔记 目录 6.7 函数指针习题答案 6.54 6.55 6.56 6.7 函数指针习题答案 6.54 vector是指向该函数 ...

  5. C++ Primer 第五版 第6章 6.7——函数指针阅读笔记

    习题答案请参考:C++ Primer 第五版 第6章 6.7--函数指针习题答案 目录 6.7 函数指针 使用函数指针 返回指向函数的指针 6.7 函数指针 声明一个函数指针,只需要用指针替代函数名即 ...

  6. C++ Primer 第五版 第6章 6.3——函数返回类型和return语句阅读笔记

    习题答案请参考:C++ Primer 第五版 第6章 6.3--函数返回类型和return语句习题答案 目录 6.3 返回类型和return语句 6.3.1 无返回值函数 无返回值函数的特性 6.3. ...

  7. 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 返回引用无 ...

  8. C++ Primer 第五版 第6章 6.2——函数参数传递习题答案

    理论讲解请参考:C++ Primer 第五版 第6章 6.2--函数参数传递阅读笔记 目录 6.10 指针形参交换两个数 6.12 引用形参交换两个数 6.13 6.14 6.15 6.16 6.17 ...

  9. C++ Primer 第五版 第6章 6.2——函数参数传递阅读笔记

    习题答案请参考:C++ Primer 第五版 第6章 6.2--函数参数传递习题答案 目录 6.2 函数参数传递 6.2.1 传值参数(值传递) 指针形参 6.2.2 传引用参数(引用传递) 使用引用 ...

最新文章

  1. java8 同步队列_秋招之路8:JAVA锁体系和AQS抽象队列同步器
  2. MyBatis-21MyBatis高级结果映射【一对多映射(2种方式)】
  3. Linux基础学习导图
  4. 嵌入式Linux系统编程学习之三十线程的同步
  5. Java会话加密_shiro的认证、授权、会话、加密
  6. 手把手教你搭建Java 开发环境
  7. 6 个清除 Linux 终端的命令
  8. c语言实数的输出和占位_C语言输出格式总结
  9. linux chmod 755
  10. 软件工程--软件详细设计说明书(免费小说网站)
  11. C语言使用josn库解析数据
  12. android重力传感器横竖反,Android重力传感器--随重力旋转的图标
  13. 微信公众号企业认证/企业公众号微信认证
  14. ZK-SNARKS | 创建第一个零知识snark电路
  15. 国外10款开源的HTML 5小游戏
  16. 基于遗传算法的二进制图像重建附Matlab代码
  17. 程序实现IMEI/MEID校验位计算
  18. 2 OPENVINO : What is Video, what is computer vision, how do we accelerate it on modern computer
  19. 【PytorchLearning】基于 UNet 的肺部影像语义分割案例保姆教程
  20. 路由表中preference 和metric的含义

热门文章

  1. Linux 光盘 远程拷贝,Linux远程拷贝scp命令
  2. linux 内存查看_Linux终端查看最消耗CPU内存的进程
  3. java join yield_Java多线程中join、yield、sleep方法详解
  4. Vue学习笔记(九) Vue CLI
  5. 了解前端——js需知道知识点
  6. 树莓派学习之路-GPIO Zero
  7. 创建maven项目多模块项目
  8. 每天进步一点点017
  9. 自定义组件-BreadcrumbTreeView 的使用
  10. javascript运动学教程