C++之数组形参

本文深入探讨了在C/C++中如何使用数组和指针,解释了为什么不能直接拷贝数组,以及数组作为参数时的实际行为。同时,还区分了数组指针与指针数组的概念,并介绍了数组引用的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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


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

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类型的引用





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值