c++学习笔记5,函数,调用函数,函数参数(调用类型)
2020-04-20 17:57
531 查看
**
来源于牛客网c++学习,非原创,当作笔记用,侵删
**
函数
以下是 max() 函数的源代码。该函数有两个参数 num1 和 num2,会返回这两个数中较大的那个数: // 函数返回两个数中较大的那个数 int max(int num1, int num2) { // 局部变量声明 int result; if (num1 > num2) result = num1; else result = num2; return result; }
调用函数
#include <iostream> using namespace std; // 函数声明 int max(int num1, int num2); int main () { // 局部变量声明 int a = 100; int b = 200; int ret; // 调用函数来获取最大值 ret = max(a, b); cout << "Max value is : " << ret << endl; return 0; } // 函数返回两个数中较大的那个数 int max(int num1, int num2) { // 局部变量声明 int result; if (num1 > num2) result = num1; else result = num2; return result; } 运行结果 把 max() 函数和 main() 函数放一块,编译源代码。当运行最后的可执行文件时,会产生下列结果: Max value is : 200
函数参数
1.传值调用
默认情况下,C++ 使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数。函数 swap() 定义如下: // 函数定义 void swap(int x, int y) { int temp; temp = x; /* 保存 x 的值 */ x = y; /* 把 y 赋值给 x */ y = temp; /* 把 x 赋值给 y */ return; } 现在,让我们通过传递实际参数来调用函数 swap(): #include <iostream> using namespace std; // 函数声明 void swap(int x, int y); int main () { // 局部变量声明 int a = 100; int b = 200; cout << "交换前,a 的值:" << a << endl; cout << "交换前,b 的值:" << b << endl; // 调用函数来交换值 swap(a, b); cout << "交换后,a 的值:" << a << endl; cout << "交换后,b 的值:" << b << endl; return 0; } 当上面的代码被编译和执行时,它会产生下列结果: 交换前,a 的值: 100 交换前,b 的值: 200 交换后,a 的值: 100 交换后,b 的值: 200 上面的实例表明了,虽然在函数内改变了 a 和 b 的值,但是实际上 a 和 b 的值没有发生变化。
2.指针调用
按指针传递值,参数指针被传递给函数,就像传递其他值给函数一样。 因此相应地,在下面的函数 swap() 中, 您需要声明函数参数为指针类型,该函数用于交换参数所指向的两个整数变量的值。 // 函数定义 void swap(int *x, int *y) { int temp; temp = *x; /* 保存地址 x 的值 */ *x = *y; /* 把 y 赋值给 x */ *y = temp; /* 把 x 赋值给 y */ return; } 如需了解 C++ 中指针的更多细节,请访问 C++ 指针 章节。 现在,让我们通过指针传值来调用函数 swap(): #include <iostream> using namespace std; // 函数声明 void swap(int *x, int *y); int main () { // 局部变量声明 int a = 100; int b = 200; cout << "交换前,a 的值:" << a << endl; cout << "交换前,b 的值:" << b << endl; /* 调用函数来交换值 * &a 表示指向 a 的指针,即变量 a 的地址 * &b 表示指向 b 的指针,即变量 b 的地址 */ swap(&a, &b); cout << "交换后,a 的值:" << a << endl; cout << "交换后,b 的值:" << b << endl; return 0; } 当上面的代码被编译和执行时,它会产生下列结果: 交换前,a 的值: 100 交换前,b 的值: 200 交换后,a 的值: 200 交换后,b 的值: 100
3.引用调用
按引用传递值,参数引用被传递给函数,就像传递其他值给函数一样。因此相应地,在下面的函数 swap() 中,您需要声明函数参数为引用类型,该函数用于交换参数所指向的两个整数变量的值。 // 函数定义 void swap(int &x, int &y) { int temp; temp = x; /* 保存地址 x 的值 */ x = y; /* 把 y 赋值给 x */ y = temp; /* 把 x 赋值给 y */ return; } 现在,让我们通过引用传值来调用函数 swap(): #include <iostream> using namespace std; // 函数声明 void swap(int &x, int &y); int main () { // 局部变量声明 int a = 100; int b = 200; cout << "交换前,a 的值:" << a << endl; cout << "交换前,b 的值:" << b << endl; /* 调用函数来交换值 */ swap(a, b); cout << "交换后,a 的值:" << a << endl; cout << "交换后,b 的值:" << b << endl; return 0; } 当上面的代码被编译和执行时,它会产生下列结果: 交换前,a 的值: 100 交换前,b 的值: 200 交换后,a 的值: 200 交换后,b 的值: 100
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C++学习笔记之继承层次中的函数调用。
- C++基础学习笔记----第四课(函数的重载、C和C++的相互调用)
- JavaScript学习笔记第一天——定义函数以及参数调用
- javascript学习笔记(二):定义函数、调用函数、参数、返回值、局部和全局变量
- c++ 模板学习笔记:函数模板的类型识别(权哥)
- C++学习笔记二十 - 调用后面的函数需要先声明
- C++学习笔记-----不要在构造函数和析构函数中调用虚函数
- 【C++学习笔记】函数基础和参数传递
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- C++学习笔记12:函数的参数传递
- C++学习笔记(13)——利用对象、引用、指针调用虚函数
- c++学习笔记:void*变量,在函数内必须要明确变量类型
- C++学习笔记1(带参数的main( )函数)
- C语言学习4: 函数返回值与传入参数,关于函数值传递和类型隐性转换,变量不同的作用域,static变量,多文件编译例如两个C文件,显示函数调用语句跳转,递归,斐波那契数列,多文件编译相同变量的问题。
- 逆向工程核心原理学习笔记(十六):栈帧3:add()函数参数传递与调用
- C++学习笔记-----函数调用时的决议:名字查找,重载决议,可访问性检测
- Effective c++学习笔记——条款5:了解C++默默编写并调用哪些函数
- C++/CLI的函数接收C#调用时的参数数据类型
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- 学习笔记(05):C++ STLSTL实战开发精讲视频-模板机制剖析(一):函数模板与隐式类型转换,模板函数与函数重载...