社区
Java SE
帖子详情
数组给数组赋值
xaz0202
2010-03-21 10:31:43
(1)
a[]={0,1,2}
b[]={0,1,2,3}
b=a 问b?
(2)
a[]={0,1,2}
b[]
b=a
问b?
有个思想,(1)中a数组3个地址,b数组4个地址,赋值后,b数组变为3个地址;(2)赋值不成功,不知原因是什么?
...全文
4553
20
打赏
收藏
数组给数组赋值
(1) a[]={0,1,2} b[]={0,1,2,3} b=a 问b? (2) a[]={0,1,2} b[] b=a 问b? 有个思想,(1)中a数组3个地址,b数组4个地址,赋值后,b数组变为3个地址;(2)赋值不成功,不知原因是什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SS_YI123
2010-03-22
打赏
举报
回复
[Quote=引用 13 楼 keeya0416 的回复:]
a[]={0,1,2}
b[]
b=a
这个不会出错吧?
b 只是声明的一个引用,它在栈中,没有空间大小一说。
当你 b = a 时,是把 a 指向的堆中的地址赋给了 b;
b在赋值前在栈中是null,赋值后它的值就是堆中那个数组的地址。
[/Quote]
应该是这样的,a,b都是数组变量而已,指向一个内存地址,他们没有大小的说法。
lovepay1413
2010-03-22
打赏
举报
回复
[Quote=引用 7 楼 derline 的回复:]
int[] b;
b = {1,2,3};
//这样为什么不行?
[/Quote]
int[]b = {1,2,3};这样就行,{}大括号赋值的方法只能在声明变量的时候初始化。
ladybirds2008
2010-03-22
打赏
举报
回复
等你们。。。。。。。。
lryxxh
2010-03-22
打赏
举报
回复
[Quote=引用 13 楼 keeya0416 的回复:]
a[]={0,1,2}
b[]
b=a
这个不会出错吧?
b 只是声明的一个引用,它在栈中,没有空间大小一说。
当你 b = a 时,是把 a 指向的堆中的地址赋给了 b;
b在赋值前在栈中是null,赋值后它的值就是堆中那个数组的地址。
[/Quote]up
TillPerfect
2010-03-22
打赏
举报
回复
1楼和5楼说的都不对,他们没有经过动手验证。
同意11楼的说法,a ,b 只是数组“变量”,指向了某一块地址,如果使用 b=a,相当于让b指向a所指向的地方,不会出现什么空间不够的问题。那空间本来就不属于a或者b本身
keeya0416
2010-03-22
打赏
举报
回复
a[]={0,1,2}
b[]
b=a
这个不会出错吧?
b 只是声明的一个引用,它在栈中,没有空间大小一说。
当你 b = a 时,是把 a 指向的堆中的地址赋给了 b;
b在赋值前在栈中是null,赋值后它的值就是堆中那个数组的地址。
TillPerfect
2010-03-22
打赏
举报
回复
[Quote=引用 7 楼 derline 的回复:]
int[] b;
b = {1,2,3};
//这样为什么不行?
[/Quote]
这样不行,b = {1,2,3}; 类似这样的用常量直接进行数组赋值的操作,只能使用在初始化的时候。
即,只能在定义数组变量的时候,使用这种形式对数组进行赋值。
bawgiitx
2010-03-22
打赏
举报
回复
不会不成功
b[]={0,1,2,3}
b为数组地址的引用,只是一个引用变量,用int *b的作用一样
soton_dolphin
2010-03-22
打赏
举报
回复
复制数组有两种方式
一种是浅复制,就是把一个数组的REFERENCE赋值给另一个数组,比如INT[] A = NEW INT[4];INT[] B = NEW INT[4]; B= A;
还一种就是深复制,就是复制一个数组里的每一个元素到另外一个数组
for(int i=0;i<a.length;i++){
b[i] = a[i];
}
修电视的攻城狮
2010-03-22
打赏
举报
回复
结果是0,1,2
Ark032425
2010-03-22
打赏
举报
回复
2楼正解。。。
智鹿软件
2010-03-22
打赏
举报
回复
长度没有初始化!长度没有初始化!长度没有初始化!长度没有初始化!长度没有初始化!长度没有初始化!长度没有初始化!
edison6219
2010-03-22
打赏
举报
回复
人好多啊
不啃不舒服斯基
2010-03-21
打赏
举报
回复
int[] b;
b = {1,2,3};
//这样为什么不行?
hjh811
2010-03-21
打赏
举报
回复
2楼正解。。。也不亲自测试下就瞎猜。。
ChikoHu
2010-03-21
打赏
举报
回复
(1) a,b的在内存中地址,并且分别指向两个不同的区域,进行b=a,就是让b也指向a指向的地方,也就是a,b指向同一个地方了。
(2) b还没分配大小,默认为0。b=a肯定就错了。
mkf_wk
2010-03-21
打赏
举报
回复
说错了,结果都是0,1,2
mkf_wk
2010-03-21
打赏
举报
回复
结果都是1,2,3
mkf_wk
2010-03-21
打赏
举报
回复
int[] a = {0,1,2};
int[] b = {0,1,2,3};
int[] c;
b=a;
c=a;
for(int i=0;i<b.length;i++){
System.out.println(b[i]);
}
for(int i=0;i<c.length;i++){
System.out.println(c[i]);
}
输出的结果一样,程序也没有错误。
无伤
2010-03-21
打赏
举报
回复
(1) 楼主可以反过来试下, 恐怕也会出现(2)的错误。 那是因为开始你先吧a、b初始化了长度,而b的长度比a大, 所以成功了, 并且指向了a的地址。 (2)就不用说了, b的初始长度为0, 你把a赋值给b一定出错。
个人意见
《C语言基础》 之 第8章
数组
课程内容:
数组
的声明、定义(初始化)、
数组
的
赋值
、
数组
在内存中的空间特点、使用 [ ] 访问
数组
元素、
数组
元素的指针、
数组
第一个元素指针的表示方法、
数组
命令与++、sizeof与
数组
、
数组
名总结、函数普通传参回顾、传递
数组
指针、二维
数组
。
数组
如何给
数组
赋值
呢。嗯,看似小问题。
这么问题看似很简单,但是并不是很简单。(可能只是针对我一个人而言吧,哈哈哈哈,进入正题)。 今天提交代码的时候,发现测试用例只跑通了 66.7%。我当时在本地测试时可以的,我还有点儿纳闷,于是,重新捋了一遍代码,嗯嗯...发现,是
数组
给
数组
赋值
的时候出了点儿问题。 错误代码:(测试用例跑通了66.7%) function append(arr, item) { var newArr...
C语言之
数组
(
数组
赋值
的三种形式)
在C语言中,对
数组
进行
赋值
的三种形式 1、通过循环的形式 即:
数组
名[下标] 对
数组
的元素进行依次
赋值
#include <stdio.h> int main() { int i; int a[10] = {0}; for(i=0;i<10;i++) { scanf("%d",&a[...
JAVA
数组
的
赋值
方式】——探索Java中
数组
赋值
的多种方法
本文介绍了Java中
数组
赋值
的多种方式,包括基本类型
数组
和引用类型
数组
。对于引用类型
数组
,也可以直接
赋值
或使用循环结构
赋值
,此外还可以使用
数组
复制的方法进行
赋值
。本文将深入探讨Java中
数组
赋值
的不同方式,包括基本类型
数组
和引用类型
数组
的
赋值
方法,并提供相应的代码示例和详细描述。以上仅为
数组
赋值
的简要介绍,希望读者能够通过本文对Java中
数组
赋值
有更深入的了Java中
数组
赋值
有更深入的了解,并能够在实际编程中灵活运用。JAVA
数组
的
赋值
方式】——探索Java中
数组
赋值
的多种方法。二、引用类型
数组
的
赋值
。
C#中
数组
赋值
的多种方法
在C#编程中,
数组
是一种常用的数据结构,用于存储和操作一组相同类型的元素。在使用
数组
时,我们经常需要为
数组
的元素
赋值
。本文将介绍C#中
数组
赋值
的多种方法,并提供相应的源代码示例。通过指定
数组
的索引位置,将特定的值赋给相应的元素。通过使用循环结构,我们可以根据特定的逻辑或算法为
数组
元素
赋值
。通过在声明
数组
时提供初始值,可以在创建
数组
时直接为
数组
元素
赋值
。这样,
数组
的元素将被
赋值
为1、2、3、4和5。,然后通过指定索引位置,将1、2、3、4和5分别
赋值
给
数组
的元素。方法可以将指定的值填充到
数组
的所有元素中。
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章