数据结构中类C语言有关操作(数组定义、传值与传址的五种情况)

类C语言有关操作

一、 数组定义

  • (1)数组静态分配

在这里插入图片描述

  • (2)数组动态分配

在这里插入图片描述
动态要地址

L.data = (ElemType*)malloc(sizeof(ElemType)*MaxSize);
在这里插入图片描述

二、C++中的参数传递

在这里插入图片描述

(1)传址方式

把实参的值传送给函数局部工作区相应的副本中,函数使用这个副本执行必要的功能。函数修改的是副本的值,实参的值不变
在这里插入图片描述
函数中m与n是作为a与b的副本,只会交换m与n的值,方法结束后,m与n的空间被释放,a与b的值不会交换。————形参发生改变,实参未发生改变。

(2)指针变量做参数

  • 形参变化影响实参
    在这里插入图片描述
    在这里插入图片描述
    函数中m得到p1的值,也就是a的地址,m也就是a的值等于3,同理n等于5,修改后a,b地址块中的值改变。

(3)指针变量参数

  • 形参变化不影响实参
    在这里插入图片描述
    在这里插入图片描述
    函数的作用是使m的值(a的地址)与n(b的地址)的值置换,但是a与b的值没有改变。

(4)数组名参数

  • 传递的是数组的首地址
  • 对形参数组所做的任何改变都将反映到实参数组中
    在这里插入图片描述
    在这里插入图片描述

**sub(a)**实际是传递了数组的首地址, (char b[])指的是指向此地址的数组,所以b数组改变,a数组也跟着改变。

(5)引用类型做参数

  • 引用:它用来给一个对象提供一个替代的名字。
    在这里插入图片描述
    在这里插入图片描述

  • 通过引用变量直接操作实参。

  • (1)传递引用给函数与传递指针的效果是一样的,形参变化实参也发生变化。

  • (2)引用类型作形参,在内存中并没有产生实参的副本,它直接对实参操作;而一般变量作参数,形参与实参就占用不同的存储单元,所以形参变量的值是实参变量的副本。因此,当参数传递的数据量较大时,用引用比用一般变量传递参数的时间和空间效率都好。

  • (3) 指针参数虽然也能达到与使用引用的效果,但在被调函数中需要重复使用“*指针变量名”的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值