c++

状课网-少儿编程网课专业平台

c++ C++编程进阶级—参数也是分帮派的

发布时间:2021-11-22 14:19:06 浏览 0
各位小伙伴大家好:

本期为大家分享到的内容是关于参数的传递,在数据结构中把参数分为输出型参数和输入型参数。

如fun(int a,int b)这种值传递就属于输入型参数

而像fun(int&a,int &b)这种引用传递就属于输出型参数

另外还有指针类型也可以传递参数。

下面我们们一起来看看代码:

C++编程进阶级—参数也是分帮派的

C++编程进阶级—参数也是分帮派的

程序中定义了两个类,父类中排序函数mysort被声明为纯虚函数,而函数的定义则在子类中。

看看运行结果

C++编程进阶级—参数也是分帮派的

运行正常,程序的代码讲解都写在注释里面,这里我就不做解释了。

接下来我们来看看各个函数的参数类型,如:第7行static swap(int&x,int &y)

这里的参数是两个,都把传递引用作为参数。

而第36行void print(int*a,int n)

这里有两个参数一个是传递指针类型,一个是值传递类型。

那么这几个参数有什么不同呢?

笔记:

首先来看int n和int &n的区别,前面的参数传递的是值,后面传递的是引用。

传递值的参数我们称之为输入型参数。对于这样的参数,系统处理的方式是将实参拷贝一份存放在函数局部零时变量中,所以对参数的修改不会影响到实参的值。

而后面的引用则不同,引用实际上就是实参的别名,所以如果在调用函数中存在对参数的修改,则会直接改变实参的值,因此传递引用的参数也被称为输出型参数。

另外再来看看int * n型参数,这里传递的参数是一个指针。这就是给函数一个内存地址,所有关于参数的操作都直接影响指针所指向的数据,所以这也是一个输出型参数。

但是需要注意的是int const * n,这种用常量指针作为参数的形式,虽然参数也是一个指针。

但是因为是一个常量指针,所以在函数中任何修改参数数据的行为都将被禁止,这也就是说参数只能使用不能修改,因此也是属于输入型参数。

本期就为大家分享到这里,下期再会

文章来源:创客编程小屋

本文链接:https://www.ascratch.com/news/17498.html

上一篇:C++编程进阶级—运算符重载与友元类 下一篇:返回列表
相关推荐 更多