普通变量和数组作为函数参数的区别

1.在普通变量作为函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。在函数调用时发生的值传送是把实参变量的值赋给形参变量。

2.在用数组名作为函数参数时,不是进行值得传递,即不是把是参数组的每一个元素的值都赋予形参数组的各个元素。因为实际上形参数组并不存在,编译系统不为形参分配内存。那么数据的传递究竟如何实现?我们都知道,数组名就是数组的首地址。因此在数组名作为函数参数时所进行的传递只是地址的传递,也就是说把是参数组的首地址赋予形参数组名。形参数组名取得该首地址之后,也就是等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。也就是数组名作为函数参数时,不是值得单向传递,而是把是参数组的首地址传递给形参数组,这两个数组共用一段储存单元。

3.C编译系统对形参数组的大小不做检查,所以形参数组可以不指定大小。

函数形式如:void print(int a[]).或者void print(int a[].int lenth)其中lenth表示数组大小。

4.多维数组也可以作为函数的参数。在函数定义的时候可以指定一维的长度,也可以省去第一维的长度如:int max(int a[][10])或者 int max(int a[3][10])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值