美文网首页
数组传递

数组传递

作者: hi_lan | 来源:发表于2019-06-18 20:33 被阅读0次

有两种传递方法,一种是function(int a[]); 另一种是function(int *a)

这两种两种方法在函数中对数组参数的修改都会影响到实参本身的值!

对于第一种,根据之前所学,形参是实参的一份拷贝,是局部变量。但是数组是个例外,因为数组的数据太多了,将其一一赋值既麻烦又浪费空间,所以数组作为参数传递给函数的只是数组首元素的地址,数据还是在内存里的,函数在需要用到后面元素时再按照这个地址和数组下标去内存查找。也就是说后面的元素根本没到函数里来。所以,这里也不能在test()函数内部用sizeof求数组的大小,必须在外面算好了再传进来。

对于第二种,则是传址调用,无需再说。

相关文章

  • 嵌入式day09

    数组在函数间传参 全局数组传递方式 复制传递方式 实参为数组的指针,形参为数组名(本质是一个指针变量) 地址传递方...

  • 数组传递

    有两种传递方法,一种是function(int a[]); 另一种是function(int *a) 这两种两种方...

  • golang中数组、切片以及映射(map)的特点

    数组 数组和切片的创建方式不同 数组是值传递,除非声明为指针传递 数组是切片和映射的基石 切片 切片是围绕动态数组...

  • 微信小程序之页面传递对象数组

    传递对象 传递数组 总结,向下一级页面传递对象或者数组的方式是相同的;先将要传递的参数通过JSON.stringi...

  • C语言17 数组参数传递

    C语言17 数组参数传递 基本类型参数传递 数组作为参数 编写一个函数,能够打印任意整形数组的值 总结: 数组作为...

  • 数组切片总结

    一句话总结:切片是动态数组。数组需要明确指定大小,切片不需要。数组是值传递,切片是地址传递。 区别 初始化 数组需...

  • Go数组和切片区别

    数组是值传递,切片是引用传递 切片可扩容 切片多一个cap属性 切片底层用数组实现

  • 小程序路由传参

    1.传递字符串,数字 2.传递数组对象时

  • vector做为函数参数传递

    vector做为函数参数传递是需要传引用才能改变实参的值。 数组可以传递数组名做为指针改变数组变量的值但vecto...

  • VB传递数组

    1.VB中的数组只能按地址传递2.数组作为形参时,应为 “数组名()” 注意是空括号3.数组作为实参时,应为 ...

网友评论

      本文标题:数组传递

      本文链接:https://www.haomeiwen.com/subject/oabqqctx.html