数组形参的学习

目录

一.、基本概念

二、尽管不能以值传递的方式传递数组,但是我们可以把形参写成类似数组的形式


 

一.、基本概念

  • 1.数组的两个特殊性质对我们定义和使用作用在数组上的函数有影响,这两个性质分别是:        (1)不允许拷贝数组(2)使用数组时将其转换成指针
  • 2.因不能拷贝数组,所以我们无法以值传递的方式使用数组参数(因为数组会被转换成指针,所有当我们为函数传递一个数组时,实际上传递的是指向数组首元素的指针

二、尽管不能以值传递的方式传递数组,但是我们可以把形参写成类似数组的形式

void print(const int*)
void print(const int [])
void print(const int[10]) 
以上三个函数等价,每个函数的唯一形参都是const int*类型的
  代码举例:
  int fun(double x[10])和int fun(double *)等价
当编译器处理对print函数的调用时,只检查传入的参数是否是const int*类型
  int i=0,j[2]={0,1}; 
  print(&i);//正确:&i的类型是int * 
  print(j);//正确:j转换成int *并指向j[0]
  注意:如果传给print函数的是一个数组,则实参自动转换成指向数组首元素的指针,数组的大
  小对函数的调用没有影响 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值