2 jgt insect jgt_insect 于 2016.03.27 10:53 提问

数组直接做做参数传递就可以通过函数改变数组的值,为啥还需要数组的引用?

如题如题如题如题如题如题如题如题如题如题如题如题如题如题如题如题

1个回答

u013755250
u013755250   2016.03.27 11:54
已采纳

都是传参,但是数组本身的数据量可能很大,但是引用相当于一个指针,所占内存相当小。就像你送一大箱礼物给别人,和给人一个取礼物的地址一样

jgt_insect
jgt_insect 真好
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
函数通过引用传递数组(修改原数组)
//http://pppboy.blog.163.com/blog/static/3020379620138132495934/一、大概区别就像指针的数组和数组的指针一样耐人寻味//array首先向右结合,所以这个相当于 (int&)array[] array是个数组,其中的元素是引用//应该叫:引用的数组int &array[]//array首先和&结合,所以array是...
在子函数中改变字符数组的值
#include #include void TestFun(char a[100]) { printf("before addr:%p\n", a); //打印a的地址 //a = "very good"; //错误。不能直接将字符串赋值给字符数组,a的地址改变了。估计是系统为a开辟了新的内存空间。"very good"的生存期是从进程开始到进程结束
C++数组作为函数参数的几个问题
本文需要解决C++中关于数组的2个问题: 1. 数组作为函数参数,传值还是传址? 2. 函数参数中的数组元素个数能否确定? 先看下面的代码。   [cpp] view plaincopy #include       using namespace std;      void testArrayArg(int a[])  
Java值传递以及引用的传递、数组的传递!!
  许多编程语言都有2种方法将参数传递给方法------按值传递和按引用传递。 与其他语言不同,Java不允许程序员选择按值传递还是按引用传递各个参数,基本类型(byte--short--int--long--float--double--boolean--char)的变量总是按值传递。就对象而言,不是将对象本身传递给方法,而是将对象的的引用或者说对象的首地址传递给方法,引用本身是按值
从数组元素交换窥探java值传递和引用传递
近日,在复习数组排序时,定义了一个数组位置交换的wrongSwap方法,发现不可行,后来发现是java值传递和引用传递的问题。import java.util.Arrays; public class RankArr { public static void main(String[] args) { int[] arr = {34,11,9,0,6,78};
数组作为函数参数传递
一、一维数组 二、二维数组
Swift 数组Array作为函数参数时如何在函数内部改变其值?
在Objective-C中我们经常会将可变数组(NSMutableArray)作为函数参数,然后在函数内部对其值进行更改:- (void)viewDidLoad { [super viewDidLoad]; NSMutableArray *numbers = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil]; [se...
C语言结构体内含有数组,该结构体作为参数传递时需用指针,否则对数组的修改不会被记录
在C语言编程时,常常会定义结构体,而且结构体里面常常会有数组,比如如下所示: typedef struct  { int data[MAX_HEAP_SIZE]; unsigned int heap_size; }HeapType;     这是一个堆的数据结构,包含堆的元素(数组)和堆的大小。在建大顶堆时会给建堆的函数传递参数,建堆函数如下: void Build_Max_He
C语言中用数组名作为参数能改变实参数组的值的理解
很多初学者不理解为什么C语言中用数组名作为参数能改变实参数组的值,现在来谈谈我的理解: 把实参数组传递给函数,则形参从数组哪里得到了其实地址,因此数组与实参数组共占了同一段内存单元,在函数调用期间,该变了形参数组的值,也就改变了实参数组的值。 现在问题来了,怎么理解共占同一段内存单元和值改变造成的影响 呢? 举例:         int     i = 12;
PHP数组当使用引用或,数组值发生了改变
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3); foreach ($arr as $key => &$val) { } print_r($arr); foreach($arr as $key => $val) {} print_r($arr); ?> 结果如下: Array ( [a] => 1 [b] => 2 [c] => 3 ) 第二次f