到底什么时候用指针

在c/c++编程中,到底什么时候该用指针来传递参数呢?总结如下:
1. 需要改变实参的时候, 只能用指针.
2. 传递大型结构并且"只读"其元素的时候,
因为大型结构通过值传递, 需要拷贝其每个元素, 这样效率太低.
3. 需要遍历数组或频繁引用其元素时, 这样效率比使用下标高.
4. 动态分配空间时, 必须使用指针.
5. 传递数组时, 必须使用指针.
6. 函数返回指针时, 比如fopen
另外,有时候需要使用二级指针,即指针的指针,例如:
MemAllocate(char *a){
a=(char *)malloc(sizeof(char));
}
当调用此函数进行内存分配时,发现不能分配内存不能成功,因为此时对于a来说,形参改变了,但实参并不会改变,他们对应于不同的内存单元。正确的写法应该是:
MemAllocate(char **a){
*a=(char *)malloc(sizeof(char));
}
这样就能够正确地分配内存了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值