C++之数组形参

因为数组不允许被拷贝、所以我们无法以值传递得方式使用数组参数

使用数组时数组会被转换成指针使用,所以我们为一个函数传递一个参数时,实际上传递的是数组元素的首元素的指针


一下三种方式函数的声明是一致的:

void  print( const int*  );

void print( const int[] );

void print( const int[10] );

尽管表现形式不同,但是三个函数的唯一参数都是const int*


另外在数组做形参的时候还需要搞清楚两个定义;数组指针与指针数组

数组指针:首先它是一个指针,指向的是一个数组。至于数组里面是什么类型,取决于定义时的类型

指针数组:它是一个数组,数组存放内容是指针,同样指针的类型不确定


例如:

int *a[10];    //a与后面的10结合,它是一个数组,数组存放元素是int*  所以它是一个指针数组

int(*a)[10];  //他是一个指针,指向的是一个存放int 类型对象 大小为10的一维数组。  所以它是一个数组指针


数组引用形参

func( int (&arr)[10] );

数组名两端的括号必不可少,如果没有括号代表的是 arr是引用的数组 数组里面存放的是int类型的引用





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值