• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

给函数的形参赋值,两种写法,效率是否一样

xukejing 2018-03-28 浏览量:848

假定个简单的数组,做个例子,就短一点吧

int b[2] = {0,0};
如果想要在一个函数里对这个数组的两个元素赋值1和2,

大概可以想到两种写法

void aaa(int *a)
{
	*a = 1;
	*(a+1) = 2;
}
void aaaa(int &a)
{
	a = 1;
	*(&a + 1) = 2;
}
然后只要aaa(b);或aaaa(b[0]);就可以给数组赋值了。

  

那么问题来了,这两种写法,执行效率哪个高


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 两种其实差不多,都是传递的指针,只是定义方式不一样而已。
    • 发布于 2018-03-28
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了 :没有找到 回复

其他答案 数量:3
  • 两种方式在效率上的差别应该是没有的,因为都是操作地址,只是第二种方式一般都没人使用,都是使用第一种方式的较多
    • 发布于2018-03-28
    • 举报
    • 评论 0
    • 1
    • 0

  • 用指针和地址传值都是一样的效率,只不过第二种太复杂了,一般人都是用第一种方法。

    • 发布于2018-03-28
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :国产没有符合替代型号。 回复

  • 要看你传递的是多少数据了,如果只是一个,那么这两种是一样的。
    数据多了,指针的方式效率高。
    • 发布于2018-03-29
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了  :PIN-SPOT-9DMI非原厂标准型号 回复

相关问题

问题达人换一批

给函数的形参赋值,两种写法,效率是否一样