当前位置: 首页> 财经> 产业 > C++核心编程和桌面应用开发 第二天(占位参数 引用 参数传递的方式 函数的重载)

C++核心编程和桌面应用开发 第二天(占位参数 引用 参数传递的方式 函数的重载)

时间:2025/7/11 22:42:55来源:https://blog.csdn.net/m0_53349772/article/details/142187684 浏览次数:0次

目录

1.占位参数

2.引用

2.1数组的引用

3.参数传递的方式

3.1值传递

3.2地址传递

3.3引用传递

4.指针的引用

4.1C语言下函数间指针的传递

4.2 C++下指针的引用

5.常量引用

6.函数的重载

6.1满足的条件

6.2使用场景

6.3注意事项


1.占位参数

C++声明函数时,可以设置占位参数,占位参数只有参数类型的声明,没有参数名称的声明

void Func(int a,int );

2.引用

本质:引用的本质是指针常量

int a=100;
int & b=a;//即
int * const b=&a;

C++增加了按引用给函数传递地址

①引用必须初始化

int a=10;
int &b=a;

②引用初始化之后,就不可以更改指向了

③引用必须是一块可修改的内存空间

④不要返回局部变量的引用

2.1数组的引用

① 先定义数组类型,通过类型定义引用

int arr[5]={1,2,3,4,5};typedef int(ARRAY_TYPE)[5];
ARRAY_TYPE & arr_ref1=arr;

②先定义数组引用的类型,再通过类型定义引用

typedef int(& ARRAY_TYPE)[5];
ARRAY_TYPE arr_re21=arr;

③直接定义数组引用

int(& arr_ref3)[5]=arr;

3.参数传递的方式

3.1值传递

通过值复制将参数传递给函数。因此修改的是复制的值,原始变量不会改变。

void mySwap(int a,int b)
{int temp=a;a=b;b=temp;
}

3.2地址传递

将参数的地址传递给函数。因此修改的是原始变量的值。

void mySwap(int* a,int* b)
{int temp=*a;*a=*b;*b=temp;
}

3.3引用传递

函数以引用的方式接收参数,此时,修改形参的值即改变了实参的值

void mySwap(int& a,int& b)
{int temp=a;a=b;b=temp;
}

4.指针的引用

4.1C语言下函数间指针的传递

若想用形参修改实参的指针,必须用更高级的指针才行,同级指针是不可以的

int* p=NULL;//同级指针,修改失败
int func(int* p)
{*p=100;
}//高级指针,修改成功
int func1(int** p)
{**p=100;
}

4.2 C++下指针的引用

int func(int* &p)
{*p=100;
}

此时,利用引用的方式传递指针,本质将指针的地址串入到函数中,实现了同级指针也能修改参数

5.常量引用

const int & ref=10;

使用场景:参数的传递。防止函数内对参数的误操作

6.函数的重载

6.1满足的条件

  • ①同一个作用域
  • ②函数名称相同
  • ③函数参数个数不同/参数类型不同/参数顺序不同

6.2使用场景

同一个函数名在不同场景具有不同含义

6.3注意事项

①参数作为引用,常量引用和普通引用可以共存

②函数重载时,尽量不要使用默认参数

关键字:C++核心编程和桌面应用开发 第二天(占位参数 引用 参数传递的方式 函数的重载)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: