版权声明:本文为博主原创文章,未经允许,不得转载!欢迎留言,允许附带链接转载! https://blog.csdn.net/Sophia_11/article/details/88221916
理论讲解请参考:C++ Primer 第五版 第6章 6.1 函数及函数定义及调用阅读笔记
目录
目录
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;
else
abs = 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是局部变量,值不会存储,一直为0
int 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); // 求绝对值的函数声明