关于用指针来处理数组

1、在C++中,当且仅当在函数头或者函数原型中,int *arr 和int arr[ ] 含义是相同的。它们意味着arr是一个int类型指针,数组表示法int arr[ ]提醒用户,arr不仅指向int,还指向int 数组的第一个int。

2、当指针指向数组的第一个元素时,用数组表示法,当指针指向一个独立的值,使用指针表示法,而且,在其他上下文中, int *arr 和 int arr [ ]含义是不同的,例如不能在函数体内使用 int tip [ ] 来声明指针。

3、恒等式:     

arr [ i ]= * (arr + i);

&arr [ i ]= arr + i;

4、函数调用 int sum_arr(int arr [ ],int n) ,将数组第一个元素地址和数组中的元素数目传递给函数,函数将数组的地址给指针变量arr,将元素数目赋给变量n ,这意味着,并不是将数组内容传递给函数,而是将数组的地址和包含的元素种类(类型)以及元素数目(n)提交给函数。有了这些信息之后,函数便可以使用原来的数组,传递常规变量时,函数将使用该变量的拷贝;但是传递数组时,函数将使用原来的数组,实际上,这不违反C++按值传递的方法,函数仍传递了一个值,这个值将赋给一个新的变量,但这个值是一个地址,而不是数组的内容。

5、将数组地址作为参数可以节省复制整个数组所需的时间和内存。如果数组很大,使用拷贝的系统开销将非常大,程序不仅需要更多的计算机内存,还需要花费时间来复制大块的数据。另外,使用原始数据增加了破坏数据的风险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值