3.函数-形参和实参
3.1 知识点
什么是形参和实参
形参(形式参数)是在函数内部使用的函数参数,它在函数定义时被指定,并在函数内部使用。
举个例子:
int add(int a, int b)
{
return a + b; //a 和 b 是形参
}
实参(实际参数)是在函数外部传入的参数,在调用函数时传递给形参的具体值,通常定义在函数外部。
举个例子:
int result = add(5, 10); //5和10就是实参
简单记忆:
- 函数内部使用的函数参数可以称为形参。
- 函数调用时传入的参数称为实参。
例如:
int result = add(5, 10); //5和10就是实参
int a = 10;
int b = 20;
result = add(a, b);
形参和实参的关系
形参是实参的内容拷贝,在内存中有自己的存储空间,二者互不影响。
值传递
对于基础数据类型,实参的值会被拷贝到形参,形参和实参的存储空间是彼此独立的。它们唯一的联系是初始值一致,因为在调用函数时,会将实参的内容拷贝给形参。
然而,由于它们存放在不同的内存“房间”中,所以彼此独立。如果你去修改形参,是不会影响实参的!
举个例子:
void changeValue(int c)
{
c = 999;
cout << "形参值:" << c << endl;
}
int c = 10;
changeValue(c); //形参值:999
cout << "实参值:" << c << endl; //实参值:10
引用传递
传递内存地址,之后学了指针更好理解
3.2 知识点代码
Lesson03_函数_形参和实参.cpp
#include <iostream>
using namespace std;
int add(int a, int b);
void changeValue(int a);
int main()
{
std::cout << "形参和实参\n";
#pragma region 知识点一 什么是形参和实参
int result = add(5, 10); //5和10就是实参
int a = 10;
int b = 20;
result = add(a, b);
#pragma endregion
#pragma region 知识点二 形参和实参的关系
int c = 10;
changeValue(c);//形参值:999
cout << "实参值:" << c << endl;//实参值:10
#pragma endregion
}
#pragma region 知识点一 什么是形参和实参
//形参:形式参数
// 在函数内部使用的函数参数称为形参
// 它在函数定义时被指定,并在函数内部使用
//举例:
int add(int a, int b)
{
return a + b; //a 和 b 是形参
}
//实参:实际参数
// 在函数外部传入的参数称为实参
// 在调用函数时传递给形参的具体值,通常定义在函数外部
//举例:
// int result = add(5, 10); //5和10就是实参
//简单记忆:
//函数内部使用的函数参数可以称为形式参数(形参)
//函数调用时传入的参数称为实际参数(实参)
#pragma endregion
#pragma region 知识点二 形参和实参的关系
//形参是实参的内容拷贝,在内存中有自己的存储空间
//形参和实参的存储空间是彼此独立的
//概念:值传递
//对于基础数据类型,实参的值会被拷贝到形参,二者互不影响
//形参和实参唯一的联系 就是 他们的初始值是一致的
//因为在调用函数时 会将实参的内容拷贝给我们的形参 因此他们的初始值一致
//但是由于它们存放在不同的内存“房间”中 因此彼此独立 如果你去修改形参 是不会影响实参的!!!!
void changeValue(int c)
{
c = 999;
cout << "形参值:" << c << endl;;
}
#pragma endregion
3.3 练习题
请解释形参和实参的关系?
形参(形式参数):是函数声明时的函数参数,用来接收调用时传入的值,在函数内部使用的参数
实参(实际参数):是调用函数时传入的具体值,一般出现在函数外部出现
在调用函数时,实参的值会被传递(拷贝)给形参,目前我们学习的知识是通过值传递的,即形参和实参只是初始值相同,但彼此的存储空间是相互独立的,互不影响的。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com