C++函数基础
2016-03-08 21:18
260 查看
函数是一个命名了的代码块,通过调用函数可以执行相应的代码。
一个函数的定义包括返回类型、函数名、形参列表和函数体四个部分。其中,形参以逗号隔开并位于圆括号之内。函数体中存放的是函数执行的操作。
例如一个简单的求两个整数中的最大值:
这个函数的名字是 max;有两个整型参数 x 和 y;返回类型是整型,表示函数会返回一个整型值;花括号里面的代码即为函数体,是实现求两个整数最大数的操作。
函数还需要注意一下几点:
1. 调用函数
要调用上面的 max 函数,必须提供两个整数值,调用得到的结果也是一个整数:
(1)用实参初始化函数对应的形参。
(2)将控制权转移给被调函数(上面的 max 函数),此时主调函数(上面的 main 函数)的执行被中断,被调函数开始执行,直到遇到一条 return 语句时被调函数结束执行过程,返回 return 语句中的值(如果有的话)同时将控制权从被调函数转移回主调函数。
上面 main 函数中 max 函数的调用等价于如下形式:
2. 形参和实参
实参是形参的初始值,实参的类型必须与对应的形参类型匹配,并且函数的调用规定实参数量应与形参数量一致。上面的 max 函数只有两个个 int 类型的形参,所以每次调用它时都必须提供两个能转换成 int 的实参。看下面的几个函数调用:
max("hello");// 错误:实参类型不正确
max(1);// 错误:实参数量不足
max(1, 2, 3);// 错误:实参数量过多
max(3.14, 6);// 正确:double 型参数能转换成 int 类型,等价于执行 max(3, 6)
在编写函数时,函数的形参列表可以为空,但不能省略,即圆括号必须要写上。
3. 函数返回类型
大多数类型都能作为函数的返回类型,一种特殊的返回类型是 void,表示函数不返回任何值。函数的返回类型不能是数组类型或函数类型,但可以是指向数组或函数的指针类型。
一个函数的定义包括返回类型、函数名、形参列表和函数体四个部分。其中,形参以逗号隔开并位于圆括号之内。函数体中存放的是函数执行的操作。
例如一个简单的求两个整数中的最大值:
int max(int x,int y) { int z; z = (x > y) ? x : y; return z; }
这个函数的名字是 max;有两个整型参数 x 和 y;返回类型是整型,表示函数会返回一个整型值;花括号里面的代码即为函数体,是实现求两个整数最大数的操作。
函数还需要注意一下几点:
1. 调用函数
要调用上面的 max 函数,必须提供两个整数值,调用得到的结果也是一个整数:
int main() { int m = max(3, 6); cout << "The max is " << m << endl; return 0; }调用函数的过程完成了两个工作:
(1)用实参初始化函数对应的形参。
(2)将控制权转移给被调函数(上面的 max 函数),此时主调函数(上面的 main 函数)的执行被中断,被调函数开始执行,直到遇到一条 return 语句时被调函数结束执行过程,返回 return 语句中的值(如果有的话)同时将控制权从被调函数转移回主调函数。
上面 main 函数中 max 函数的调用等价于如下形式:
int x = 3; int y = 6; int z; z = (x > y)? x : y; int m = z;
2. 形参和实参
实参是形参的初始值,实参的类型必须与对应的形参类型匹配,并且函数的调用规定实参数量应与形参数量一致。上面的 max 函数只有两个个 int 类型的形参,所以每次调用它时都必须提供两个能转换成 int 的实参。看下面的几个函数调用:
max("hello");// 错误:实参类型不正确
max(1);// 错误:实参数量不足
max(1, 2, 3);// 错误:实参数量过多
max(3.14, 6);// 正确:double 型参数能转换成 int 类型,等价于执行 max(3, 6)
在编写函数时,函数的形参列表可以为空,但不能省略,即圆括号必须要写上。
3. 函数返回类型
大多数类型都能作为函数的返回类型,一种特殊的返回类型是 void,表示函数不返回任何值。函数的返回类型不能是数组类型或函数类型,但可以是指向数组或函数的指针类型。
相关文章推荐
- 【C语言】malloc()和free()函数的讲解以及相关内存泄漏问题
- c 语言字符串相关函数使用说明
- 【转】C语言:内存使用
- C语言:动态内存会被自动释放吗?杜绝“野指针”
- 深入讨论函数返回值
- 【转】C语言:指针,C的灵魂
- C++上机报告
- 排序算法之希尔排序
- [c++]关于时间函数的总结
- 【面试经典题之字符串】用C或C++写一个函数,实现反转一个null结尾的字符串
- C++运算符优先级
- C语言深度剖析-----最终的胜利
- c++基础——c++11中的新特性
- C++中new与malloc的10点区别
- C++中的seekg函数
- 【足迹C++primer】46、动态存储类
- MFC文件分割小工具
- C++ 何时使用引用参数(一些指导原则)
- 操作系统用C语言模拟进程基于优先级的调度程序
- C语言中参数的传递