-
2021-03-09 19:02:14
好久没有编程了,今天突然想写点程序,谁知道这个数组的赋值问题给难住了,忘了以前老师说过的,测试程序调用处理类时候,在主程序运行的空间之外又开辟了一块空间,等处理类处理完了后,在返回到主程序的运行空间。
问题是这样滴:我在测试程序中定义了一个int型的数组并给数组每个元素赋了值,然后调用处理类把数组给倒置过来,这个问题是相当简单的。在处理类中第一种方法是:直接写个类成员函数,调用方便,传进去要处理的数组,弄个temp缓冲空间,把数组的头尾开始交换,程序运行很正常
static void reversel(int[] a){
int n=a.length;
int m=n/2;
int temp;
for(int
i=0;i
temp=a[i];
a[i]=a[n-1-i];
a[n-1-i]=temp;
}
}
第二种方法用了一个新的int型数组b,把要处理的数组从尾到头地依次赋值给b数组,再把数组不中的值倒到a数组中,这种方法的空间就要比上一个大多了。但是当把b数组再给a数组赋值时,出现了问题:用1语句还是用2语句,实践出来了,还是用2语句。如果用1语句,当在测试程序中依次打印倒置后的a数组的值时,还是和没有处理过的一样,这是为什么呢~~想了好久……
public void reversel1(){
int n=a.length;
int[] b=new int[n];
for(int
i=0;i
b[i]=a[n-1-i];
} a=b; 1 for(int
i=0;i
a[i]=b[i];
} 2 }
测试主程序开辟空间运行时候,调用了处理类,此时主程序要给处理类开辟新空间,等处理类运行完后又回到主程序刚才调用处理类的缺口,接着运行主程序。在调用处理类时,用1语句时候只是把引用给赋了值,a和b同时指向处理过的这段空间,但是,还没有把处理的结果给真正地返回给主程序中的a数组。所以,当处理程序执行完后,这段空间就给清掉了,所以a数组等于没有什么影响,给没有处理是一样的。
但用2语句就不同了,它直接把b数组的处理结果一个一个给主程序的a数组赋值,影响到了主程序。所以得到了想要的倒置结果。
经过这么一折腾,在写程序时候注意了,数组的赋值、程序运行时候主程序和子程序的空间分配问题。呵呵,加油
更多相关内容 -
java编程-定义数组并赋值
2022-04-19 13:34:49//分步定义数组,先定义数组名,然后再为数组赋值 int [] d = {88,99,100}; //直接定义数组,同时赋值 System.out.println(d[0]);//访问数组的元素,需要通过 数组名[元素下标] 来访问 //package day03; public class TestArray { public static void main(String [] args) { int [] b; b = new int[] {88,99,66}; //分步定义数组,先定义数组名,然后再为数组赋值 int [] d = {88,99,100}; //直接定义数组,同时赋值 System.out.println(d[0]);//访问数组的元素,需要通过 数组名[元素下标] 来访问 // System.out.println(d[3]);//错误的演示,如果访问的下标超过了数组的最大下标,编译不会报错,但是执行会报错 int [] c = new int[3]; //只定义数组元素的个数,没有为其赋值。 System.out.println(c); //打印数组名,打印出来的是数组再堆内存中的地址 //数组都是有默认值的,boolean:false ,String:null。 boolean [] bl = new boolean[3]; System.out.println(bl[0]); String [] s = new String [3]; System.out.println(s[0]); double [] dou = new double[3]; System.out.println(dou[0]); System.out.println(c[0]); c[0]=1000; //可以通过数组下标的方式为数组赋值 System.out.println(c[0]); } }
打印结果如下:
-
「数组赋值」java编程-定义数组并赋值 - seo实验室
2021-02-28 15:22:42数组赋值package day03;public class TestArray {public static void main(String [] args) {int [] b;b = new int[] {88,99,66}; //分步定义数组,先定义数组名,然后再为数组赋值int [] d = {88,99,100}; //直接...数组赋值
package day03;
public class TestArray {
public static void main(String [] args) {
int [] b;
b = new int[] {88,99,66}; //分步定义数组,先定义数组名,然后再为数组赋值
int [] d = {88,99,100}; //直接定义数组,同时赋值
System.out.println(d[0]);//访问数组的元素,需要通过 数组名[元素下标] 来访问
//System.out.println(d[3]);//错误的演示,如果访问的下标超过了数组的最大下标,编译不会报错,但是执行会报错
int [] c = new int[3]; //只定义数组元素的个数,没有为其赋值。
System.out.println(c); //打印数组名,打印出来的是数组再堆内存中的地址
//数组都是有默认值的,boolean:false ,String:null。
boolean [] bl = new boolean[3];
System.out.println(bl[0]);
String [] s = new String [3];
System.out.println(s[0]);
double [] dou = new double[3];
System.out.println(dou[0]);
System.out.println(c[0]);
c[0]=1000; //可以通过数组下标的方式为数组赋值
System.out.println(c[0]);
}
}
打印结果如下:
相关阅读
sizeof()是C语言中常用的运算符,可以计算操作数的大小。sizeof的结果是无符号整数类型,通常用size_t表示。sizeof可以应用于各种数
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML、JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的
C语言中的动态数组
C语言中的动态数组就是动态内存分配的知识
首先,先看C语言的那些小秘密之动态数组https://blog.csdn.net/biglo
#include
#include
#include
using namespace std;
int main()
{
int i = 0;
int *p1 = &i;
一、数组的声明
#include
int main(){
float candy[365];//通过声明告诉编译器数组元素的个数和类型
char code[12]
-
java二维数组的赋值方法
2021-03-05 21:13:11下面就具体的二维数组赋值,我们先简单分析赋值的概念,然后带来具体的赋值实例。1.赋值概念使用双下标访问二维数组中的元素:第一个下标代表:行号(高维下标)。第二个下标代表:列号(低维下标)。2.赋值实例(1)赋...在java数组中,我们想要知道其长度,可以通过赋值的方法来实现。在正式开始对数组赋值前,我们要明确其中的下标问题。在准备步骤上,先找到高维的位置,再确定低纬的下标,就可以进行相关的赋值操作了。下面就具体的二维数组赋值,我们先简单分析赋值的概念,然后带来具体的赋值实例。
1.赋值概念
使用双下标访问二维数组中的元素:
第一个下标代表:行号(高维下标)。
第二个下标代表:列号(低维下标)。
2.赋值实例
(1)赋值:从最高维开始,分别为每一维分配空间,例如:String s[][] = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
s[0][0] = new String("Good");
s[0][1] = new String("Luck");
s[1][0] = new String("to");
s[1][1] = new String("you");
s[1][2] = new String("!");
(2)输出for (int i=0; i
for (String s1:s[i]){
System.out.print(s1 +' ');
}
}
结果Good Luck to you !
以上就是java二维数组的赋值方法,相信大家在理解了赋值需要的下标,就可以开始着手赋值的实例操作了。大家学会后,赶快动手操作一下吧。更多Java学习指路:
-
java:多维数组赋值
2017-12-25 19:21:39*以及给多维数组赋值的方法*/ package bate; public class bate { public static void main(String[] args) { // 定义多维数组 int[][] k = new int [4][5];//名 [][] int a=k.length; //输 -
java给数组赋值
2021-03-23 20:12:06java 动态数组赋值,java对象数组详解,java二维数组赋值,java给数组赋值java数组动态赋值,从零学java笔录-第24篇 图解一维数组在内存中,java二维数组赋值,java给数组赋值java 数组动态赋值,从零学java笔录-第24篇 ... -
java数组如何赋值
2021-02-12 15:16:43Java 语言中数组必须先初始化,然后才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。初始化数组有以下 3 种方式:1)使用 new 指定数组大小后进行初始化使用 new 关键字创建... -
给字符数组赋值的方法
2021-03-11 14:31:49/*给数组赋字符串*/...}上面程序在编译时, 遇到char s[30]这条语句时, 编译程序会在内存的某处留出连续30个字节的区域, 并将第一个字节的地址赋给s。当遇到strcpy( strcpy 为Turbo C2.0的函数)时, 首先在目标文件的... -
如何给JAVA二维数组赋值
2021-04-11 11:32:10该楼层疑似违规已被系统折叠隐藏此楼查看此楼从文件里取出数据 按行存在一维数组里面 如何存进二维数组 我们方法显示不出来 求教public static void main(String[] args) throws IOException{BufferedReader reader=... -
Java数组赋值的方法
2021-07-28 14:33:181.数组操作中,可以使用等于(=)赋值 注意:此时新数组只是指向原数组的存储空间,并没有重新申请新的空间。 实例: public class ArrayTest{ public static void main(String args[]){ // 1 int[] a=new int[4]; ... -
java 二维数组随机赋值
2021-03-10 05:14:41java 二维数组随机赋值[2021-01-31 00:08:55]简介:目的:使用二维数组打印一个 10 行杨辉三角。(视频教程推荐:java课程)思路:1. 第一行有 1 个元素, 第 n 行有 n 个元素;2. 每一行的第一个元素和最后一个元素都是... -
java二维数组赋值for循环的执行过程?
2021-02-12 15:02:22importjava.util.Scanner;publicclassMyFriendFindTimes{publicvoidMyOwn(Stringname,Stringage){System.out.println("姓名"+name);System.out.println("年龄"+age);}publicvoidMyFri...import java.util.Scanner;... -
java 给数组中的两个数组赋值
2021-02-12 22:34:33输入代码int[] arr1 = new int[3];//创建数组,长度为3int[] arr2 = new int[3];//创建数组,长度为3System.out.println(arr1);//打印数组的地址值System.out.println(arr2)...//给第二个数组中第二个元素赋值System.o... -
java中数组赋值方法
2021-03-10 10:20:21Java中数组赋值方法,以及为什么不能使用a = b //这里定义两个长度相同的数组,其中数组二为空 int[] arr1 = new int[]{1,2,3,4,5,6,0,0,0,0}; int[] arr2 = new int[arr1.length]; 使用for循环赋值 for(int i = ... -
Java自定义类创建对象数组并赋值
2021-12-22 15:41:03采用下面的代码为对象数组里面的每个元素的字段赋值时报错。 public class StudentArray { public static void main(String[] args){ Student[] stuArr = new Student[5]; //创建对象数组,没有显式初始化,stuArr... -
javase数组的定义与赋值
2021-03-13 17:46:42public class Shuzudingxi {public static void main(String[] args) {////必须入口 要有Main方法/函数// src 源代码 .java out .class// /**// * 数组:连续的地址空间 只能存储同一类型的数据// * (数组就是对... -
Java 如何在类数组中赋值
2021-02-12 18:44:51importjava.util.*;publicclassJavaA{/***@paramargsthecommandlinearguments*/publicstaticvoidmain(String[]args){Book[]a1=newBook[20];for(inti=0;i<20;i++){Booka1[i]=newBook("...import java.util.*;publi... -
JAVA在类中定义数组并赋值
2019-01-15 15:25:46public class Deom { int a[]=new int[100]; a[0]=1234; a[1]=1234; a[2]=1234;...该段代码没有在任何方法体内,是永远不会执行的,所以java在编译的时候就提示出错。...当然,定义的同时初始化赋值是... -
如何给Java String数组赋值
2018-07-03 14:12:28//一维数组String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组str[0] = "a"; //赋值str[1] = "b";str[2] = "c";str[3] = "d";str[4] = "e... -
java 数组的创建 与 赋值
2021-07-30 14:29:301.2.2 数组类型 ...第3种形式中,即使没有给每个元素赋值,每个元素也都有一个默认值,这个默认值跟数组类型有关,数值类型的值 为0,boolean为false,char为空字符。 -
java创建数组并且赋值
2022-01-25 15:43:12java创建数组并且赋值 int[] arr = {1,2,4, …}; -
Java随记:数组
2021-04-16 14:55:09Java语言中提供的数组是用来存储固定大小的同类型元素。声明数组变量结构:1. 数组类型 [] 数组名; 或 dateType [] arrayName; (推荐方式)eg: double [] doubleArr;2.数组类型 数组名 []; 或 dateType arrayName [];... -
Java中的数组定义、数组的创建和赋值、数组遍历
2021-08-03 21:32:56数组的定义 数组是一个变量,是用于储存相同类型数据的有序集合。 特点:长度确定不可更改,储存数据类型相同,数组类型可以是任意数据类型。 创建数组及赋值 动态方法及赋值:(推荐使用) 数据类型[ ] 数组... -
java声明对象数组
2021-03-15 03:45:06java如何对象创建数组并初始化急夜影驱动编程小编今天和大家分享答案/** * 功能:声明一个学生类 * @author qqliweng * 时间:2009-10-22 * 版本:V1.0 */ public class Student { private String name; //学员姓名 ... -
「java 数组」Java创建数组的方法 - seo实验室
2021-03-04 08:25:08Java创建数组的方法大致有三种说明:这里以int为数据类型以arr为数组名来演示一、声明并赋值int[] arr = {1,2,4, …};注意这里的花括号不是语句块,而且而且花括号后的分号也不能省二、声明数组名开辟空间并且赋值... -
JS实现给json数组动态赋值的方法示例
2020-10-19 14:42:43主要介绍了JS实现给json数组动态赋值的方法,结合实例形式分析了javascript针对json数组的遍历、赋值等常用操作技巧,需要的朋友可以参考下 -
定义数组并赋值
2021-03-17 21:41:291.定义一个给定长度的字符数组: String[] sz=new String[5]; 2.定义一个给定长度的字符数组并对其进行初始化: String[] sz=new String[]{"1","2","3","4","5"}; -
java中数组的三种定义方式_java中数组的定义及使用方法(推荐)
2021-03-16 02:38:19堆栈内存的解释数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内的空间,数组是永远无法使用的,必须有指向的对内存才可以使用,要想开辟新对内存空间必须使用new关键字,之后就是将对内存的使用权交给... -
Java中给数组循环赋值
2019-07-01 22:17:56我尝试使用一个for循环对一个String数组赋值,但是我打印出来的结果都是null。但是我每个数都是赋值进去了,不知道哪里有问题。 ``` public static void main(String[] args) { String []list = new ...