为什么调用函数的时候,有些情况下要传地址?传地址有什么好处?
首先有一种情况,是必须要传地址的,比如交换两个数字。
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条评论
快来发表一下你的评论吧 !