• 关于

    传递数组

    的搜索结果

回答

这是将数组传递给函数的语法的怪癖。 实际上,不可能在C中传递数组。如果编写的语法看起来像应该传递该数组,则实际发生的是改为传递了指向数组第一个元素的指针。 由于指针不包含任何长度信息,[]因此函数形式参数列表中的内容实际上将被忽略。 自从1970年代就做出了允许使用这种语法的决定,从那以后引起了很多混乱。

保持可爱mmm 2020-02-07 01:14:57 0 浏览量 回答数 0

回答

关于数据结构,我的建议是,PHP代码,拒绝数据对象。PHP最牛的,或者说最具有优势的数据结构就是数组,所以传递数组不是不优雅,这就是PHP的最佳实践。关于MVC之间的传递,我的建议是各层只把自己了解的数据以数组形式传递给其它层,接收数据的时候,做一次可用性验证,拼装成自己需要的数据结构(最好也是数组)。

落地花开啦 2019-12-02 02:42:11 0 浏览量 回答数 0

问题

将2D数组传递给C ++函数

保持可爱mmm 2020-01-16 14:58:28 0 浏览量 回答数 1

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

List list = ..; String[] array = list.toArray(new String[0]); 例如: List list = new ArrayList (); //add some stuff list.add("android"); list.add("apple"); String[] stringArray = list.toArray(new String[0]); toArray()没有传递任何参数的方法将返回Object[]。因此,您必须传递一个数组作为参数,该数组将用列表中的数据填充并返回。您也可以传递一个空数组,但也可以传递具有所需大小的数组 问题来源于stack overflow

保持可爱mmm 2020-01-13 16:52:05 0 浏览量 回答数 0

问题

C ++通过引用传递数组

保持可爱mmm 2020-02-09 12:18:51 1 浏览量 回答数 1

问题

如何在查询字符串中传递数组?

保持可爱mmm 2020-01-15 16:51:43 0 浏览量 回答数 1

问题

通过引用传递数组

保持可爱mmm 2020-02-06 22:56:04 0 浏览量 回答数 1

问题

在PHP中将数组作为参数而不是数组传递

保持可爱mmm 2020-02-06 23:56:49 2 浏览量 回答数 1

回答

很简单分辨,JAVA变量如果类型是小写字母的,就是值传递(数组除外)。其他类型是大写字母开头的对象,以及数组(int [ ] / byte [ ] 这类)都是址传递。值传递相当于复制一份变量,方法内修改了变量,方法外不会感知到,因为修改的是复制品。址传递相当于同一个变量传递进去,方法内修改了变量,方法外会感知到,因为修改的是同一个东西。

seesaw 2019-12-02 01:58:17 0 浏览量 回答数 0

问题

js怎么传递数组

云计算小粉 2019-12-01 19:45:38 710 浏览量 回答数 1

回答

Everything in Java are passed-by value.。如果是Array(只不过是Object),则数组引用按值传递。(就像对象引用按值传递)。 当您将数组传递给其他方法时,实际上是复制对该数组的引用。 通过该引用对数组内容进行的任何更改都会影响原始数组。 但是,将引用更改为指向新数组不会更改原始方法中的现有引用。 看到这篇文章。 Java是“按引用传递”还是“按值传递”? 请参见以下工作示例:- public static void changeContent(int[] arr) { // If we change the content of arr. arr[0] = 10; // Will change the content of array in main() } public static void changeRef(int[] arr) { // If we change the reference arr = new int[2]; // Will not change the array in main() arr[0] = 15; } public static void main(String[] args) { int [] arr = new int[2]; arr[0] = 4; arr[1] = 5; changeContent(arr); System.out.println(arr[0]); // Will print 10.. changeRef(arr); System.out.println(arr[0]); // Will still print 10.. // Change the reference doesn't reflect change here.. } 问题来源于stack overflow

保持可爱mmm 2020-02-06 22:33:05 0 浏览量 回答数 0

问题

如何传递ImageView数组到bitmap

蛮大人123 2019-12-01 19:56:02 850 浏览量 回答数 1

回答

数组的map方法: 概述 map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。 语法 array.map(callback[, thisArg]) 参数 callback 原数组中的元素经过该方法后返回一个新的元素。 currentValue callback 的第一个参数,数组中当前被传递的元素。 index callback 的第二个参数,数组中当前被传递的元素的索引。 array callback 的第三个参数,调用 map 方法的数组。 thisArg 执行 callback 函数时 this 指向的对象。 实现: Array.prototype.map2 = function(callback) { for (var i = 0; i < this.length; i++) { this[i] = callback(this[i]); } };

kun坤 2019-12-02 03:23:14 0 浏览量 回答数 0

回答

我按照执行顺序给你写注释好了。Person p1 = new Person(10); //创建了一个对象 //p1.age=10; modify(p1); //modify函数传参,创建了一个在modify函数里面的局部变量p //你应该明白p是一个新的变量,这里类似于执行了p=p1,这两个是指向的同一个对象的 //p.age=10; p = new Person(20); //注意,这里!这里! //这里是p被重新赋值了,p指向了新的对象new Person(20); //p.age=20; //和p1指向的那个对象一毛线关系都没有啊所以,你的代码是在函数内部,把局部变量给重新赋值了。是没法修改到外面的对象的,因为你已经把唯一能访问到外面那个p1的p给重新赋值了!`public static void modify(Person p){ p.age=20; //只有这样才能修改对象!}`同理,如果你写成这样:`public static void modify(Person p){ p = null;//对外面的p1没有任何影响}`我举个例子,你就比较好理解了。你创建了一个100000000个元素的数组,比如就叫p1,你把数组通过参数传进函数里面,那么:这个参数p(类似于p = p1),p和p1他们是指向同一个对象。不是说modify(int[] p)重新创建了100000000个元素的数组。这个应该很好理解。那么:然后你通过p的内置函数怎么操作p都行,都是操作的那100000000个元素的数组。但是,你不能把p重新赋值啊。重新赋值它就不是之前那个数组啦!比如:你重新p = new int[100000000],就创建了一个新的100000000个元素的数组啊。你执行p = null,也只是销毁了这个引用,不让它指向100000000个元素的数组而已。对外面p1的那个数组不会再有任何影响了。关于JAVA的函数传参数,你应该也听说过,所谓"基本数据类型是传递的值,其它都是传递的引用"。个人理解是这样的。你传递个Person的对象进去,你可以用SetAge()什么的修改这个对象。但是基本的数据类型,比如Integer、String等等,他们没有什么内置函数能改变他们自己。所以,你传递进去一个int的参数,就算其实是传递的引用,你也只能对int做重新赋值,一重新赋值,就表现成传递的是"值"(永远影响不到函数外面)。

蛮大人123 2019-12-02 01:58:52 0 浏览量 回答数 0

回答

在C语言中,数组作为指向第一个元素的指针传递。它们是唯一未真正按值传递的元素(指针按值传递,但未复制数组)。这允许被调用的函数修改内容。 void reset( int *array, int size) { memset(array,0,size * sizeof(*array)); } int main() { int array[10]; reset( array, 10 ); // sets all elements to 0 } 现在,如果要更改数组本身(元素数...),则不能使用堆栈或全局数组来执行此操作,只能使用堆中动态分配的内存来执行。在这种情况下,如果要更改指针,则必须将指针传递给它: void resize( int **p, int size ) { free( *p ); *p = malloc( size * sizeof(int) ); } int main() { int *p = malloc( 10 * sizeof(int) ); resize( &p, 20 ); } 在问题编辑中,您专门询问有关传递结构数组的问题。您有两种解决方案:声明一个typedef,或明确声明您正在传递一个结构: struct Coordinate { int x; int y; }; void f( struct Coordinate coordinates[], int size ); typedef struct Coordinate Coordinate; // generate a type alias 'Coordinate' that is equivalent to struct Coordinate void g( Coordinate coordinates[], int size ); // uses typedef'ed Coordinate 您可以在声明类型时键入typedef(这是C语言中的常见用法): typedef struct Coordinate { int x; int y; } Coordinate;

保持可爱mmm 2020-02-09 11:45:55 0 浏览量 回答数 0

回答

据说数组会“衰减”到指针中。声明为的C ++数组int numbers [5]无法重新指向,即您不能说numbers = 0x5a5aff23。更重要的是,术语“衰减”表示类型和尺寸的损失。numbers会int*因丢失尺寸信息(计数5)而衰减,类型不再存在int [5]。在这里寻找不发生衰减的情况。 如果要按值传递数组,则实际上是在复制指针-将指向数组第一个元素的指针复制到参数(其类型也应该是数组元素类型的指针)。这是由于数组的衰减性质而起作用的。一旦衰减,sizeof就不再给出完整数组的大小,因为它实际上成为了指针。这就是为什么(除其他原因外)首选通过引用或指针传递。 传递数组1的三种方法: void by_value(const T* array) // const T array[] means the same void by_pointer(const T (*array)[U]) void by_reference(const T (&array)[U]) 最后两个将提供适当的sizeof信息,而第一个将不提供信息,因为array参数已衰减为可分配给该参数。 1常数U在编译时应该是已知的。 问题来源于stack overflow

保持可爱mmm 2020-01-15 10:19:38 0 浏览量 回答数 0

回答

对于问题的第二部分,请参见手册的数组页面,其中指出(引用): 数组分配始终涉及值复制。使用引用运算符通过引用复制数组。 并给出示例: 对于第一部分,最好的确定方法是尝试;-) 考虑下面的代码示例: function my_func($a) { $a[] = 30; } $arr = array(10, 20); my_func($arr); var_dump($arr); 它将给出以下输出: array 0 => int 10 1 => int 20 这表明该函数尚未修改作为参数传递的“外部”数组:它作为副本而不是引用传递。 如果要通过引用传递它,则必须通过以下方式修改该函数: function my_func(& $a) { $a[] = 30; } 输出将变为: array 0 => int 10 1 => int 20 2 => int 30 同样,这一次,数组已“通过引用”传递。 问题来源于stack overflow

保持可爱mmm 2020-01-16 15:25:11 0 浏览量 回答数 0

回答

实参的数组就是数组,而指针就是指针。 形参只存在指针,不存在数组,即使传递数组,或将形参写成数组的形式如int a[],最终得到的还是一个指针。

美人迟暮 2019-12-02 01:19:11 0 浏览量 回答数 0

问题

jfinal中使用AJAX传递参数的困惑

a123456678 2019-12-01 20:24:20 1067 浏览量 回答数 1

问题

PHP中的数组是按值还是按引用传递?

保持可爱mmm 2020-01-16 15:24:51 0 浏览量 回答数 1

问题

jfinal renderjson传递数据前段处理的问题

a123456678 2019-12-01 20:24:21 2569 浏览量 回答数 1

回答

这是JS解释引擎自己控制的,我们只要知道就好了。我们知道,数组、类都是引用传递的,基本类型都是按值传递的。这主要是考虑到内存的利用率,数组和类等一等都比较大,复制一份的时间就很不合算,而且,很多时候我们都需要修改其中的值,引用传递才是最合理的。

a123456678 2019-12-02 02:05:40 0 浏览量 回答数 0

回答

它允许您按值将数组传递给函数,或从函数中按值返回它。 可以通过值传递结构,这与在这种情况下会衰减到指针的数组不同。

保持可爱mmm 2020-02-07 01:20:58 0 浏览量 回答数 0

问题

android bitmap数组传递的问题

爵霸 2019-12-01 20:06:21 828 浏览量 回答数 1

回答

json数组格式转换成String作为参数传递给struts2的Action的属性后,在后台处理时再用java的JSON解析工具进行数据解析的。跟普通String类型的参数传递一样啊,把json数组格式化成字符串。

杨冬芳 2019-12-02 03:05:32 0 浏览量 回答数 0

问题

ajax 获取表单内容然后传递PHP

小旋风柴进 2019-12-01 20:12:32 1055 浏览量 回答数 1

问题

ajax 获取表单内容然后传递PHP

小旋风柴进 2019-12-01 19:38:00 957 浏览量 回答数 0

问题

startActivityForResult() 的空指针异常

蛮大人123 2019-12-01 19:55:08 1137 浏览量 回答数 1

回答

该引用按值传递。 .NET中的数组是堆上的对象,因此您有一个引用。该引用按值传递,这意味着调用者将可以看到对数组内容的更改,但是重新分配数组不会: void Foo(int[] data) { data[0] = 1; // caller sees this } void Bar(int[] data) { data = new int[20]; // but not this } 如果添加ref修饰符,则引用将通过引用传递-调用者将在上面看到任一更改。

保持可爱mmm 2020-02-08 19:06:40 0 浏览量 回答数 0

问题

前台传递一个数组到后台,后台接受不到数据? 400 报错

爱吃鱼的程序员 2020-06-03 16:36:11 2 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站