为什么调用函数的时候,有些情况下要传地址?传地址有什么好处?
首先有一种情况,是必须要传地址的,比如交换两个数字。
void swap(int *x, int *y) { int t = *x; *x = *y; *y = t; } int main() { int a = 1, b = 2; swap(&a, &b); return 0; }凡是这种涉及到在函数内部修改实参值的,都得要传地址才行,通过地址来间接得修改。
void test(int *a) { /*结果保存在a中*/ } int main() { int result[5] = {0}; test(result); return 0; }除了这种必须传地址的情况,剩下的可以传地址,也可以不传地址,但是传地址的话有时候效率更高。
struct Test { int a[1024]; };比如我们写代码的时候经常用到结构体,我写的这个结构体占了4096字节,如果直接传值,那么形参也要分配4096个字节,而且还得把实参的数据拷贝过来。
全部0条评论
快来发表一下你的评论吧 !