强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁 > 資訊 > 經(jīng)驗(yàn) > 數(shù)組初始化,JAVA數(shù)組初始化

數(shù)組初始化,JAVA數(shù)組初始化

來源:整理 時(shí)間:2023-08-28 09:03:20 編輯:智能門戶 手機(jī)版

本文目錄一覽

1,JAVA數(shù)組初始化

string[] str = new string[]{1,2,3} 或 string[] str = {1,2,3} 二維數(shù)組初始化 int[][] a={{1,2,3},{2,3,4},{1,0}}
String name[]={"s1","s2","s3"};

JAVA數(shù)組初始化

2,數(shù)組初始化

使用memset函數(shù)例如:#include<iostream>using namespace std;int a[1000][1000];int main() memset(a,0,sizeof(a)); for(int i=0;i<1000;i++) for(int j=0;j<1000;j++) cout<<a[i][j]<<endl; } system("pause");} 這樣就行了,但只能賦值為0和-1;

數(shù)組初始化

3,如何對數(shù)組進(jìn)行初始化

效率的方法是memset(matrix, 0, sizeof(matrix))。但要理解其背后的含義,他的含義是將matrix所占的內(nèi)存區(qū)域都賦值成0。其內(nèi)存區(qū)域賦值的單位是字節(jié)。也就是說對于int型數(shù)組matrix,每個(gè)元素int占四個(gè)字節(jié),這四個(gè)字節(jié)都會被賦值為0。根據(jù)int的表示方法,最后這個(gè)數(shù)值也是0。碰巧的是對于double,float等當(dāng)所有字節(jié)都為0時(shí),最終的數(shù)值也都是0。所以對于這類數(shù)值型數(shù)組,如果清零的話可以這么寫。但賦值成其它數(shù)字就沒有這么幸運(yùn)了,如果用memset(matrix, 1, sizeof(matrix)),并不是把所有元素都賦值成1。而是內(nèi)存中內(nèi)容為0x010101,如果是int型那對應(yīng)的是65793。如果是float型那就是某個(gè)其它數(shù)字。另外一個(gè)可以記住的常用的是memset(matrix, -1, sizeof(matrix)),對于int型這個(gè)對應(yīng)的正好也是-1.如果要賦值其它數(shù)字,只能用循環(huán)的方法自己賦值一遍?;蛘呗暶饔胹tl的構(gòu)造函數(shù)。對于字符串,使用memset也不是好的方法,字符串最好使用stl中的string,使用stl的初始化方法。
void *memset(void *s, int c, size_t n);以char型為例:char str[10];memset(str, 0x00, sizeof(char) * 10);含義:初始化char型數(shù)組str,數(shù)值是0,數(shù)組的大小是10個(gè)char型大小的空間。
for(int i=0;i for(int j=0;j matrix[i][j]=0; //如果數(shù)組被定義為int型 }}
要看你是什么語言了
如果你是想問怎樣在初始化的時(shí)候把內(nèi)容設(shè)置好了,俺不知道,但是你在初始化的時(shí)候,大部分時(shí)候都會自動清空(我曾經(jīng)遇到過值被賦的高得離譜),也就是全部賦成0,如果你是在想設(shè)的話,一樓的循環(huán)可以,如果真的有這樣的函數(shù)的話效率也不過如此。
memset( matrix , 0 , sizeof( matrix ) ) ;

如何對數(shù)組進(jìn)行初始化

4,數(shù)組初始化

使用memset函數(shù)例如:#include<iostream>using namespace std;int a[1000][1000];int main() memset(a,0,sizeof(a)); for(int i=0;i<1000;i++) for(int j=0;j<1000;j++) cout<<a[i][j]<<endl; } system("pause");} 這樣就行了,但只能賦值為0和-1;
這樣是不對的,要不你就用系統(tǒng)的內(nèi)存初始化函數(shù):inta[10];memset(a,0,10*sizeof(int));要不你就:inta[10]=這樣也全是0啦。或者inta[10]=其他沒寫的就是0啦。
你的編譯器的問題,asni c99 標(biāo)準(zhǔn)里int a[10]=JAVA數(shù)組初始化;是完全正確的,并指定a[0]的值為0,但你并沒有給后面的變量賦值,編譯器會自動把沒有賦值的變量初始化為數(shù)組最后一個(gè)成員的值,即int a[10]=JAVA數(shù)組初始化;數(shù)組a的值都被初始化為了0,應(yīng)該是你編譯器過老的緣故,問題2也是
C語言對一維數(shù)組的初始化賦值有以下幾點(diǎn)規(guī)定:1) 可以只給部分元素賦初值。當(dāng)例如: int a[10]=表示只給a[0]~a[4]5個(gè)元素賦值,而后5個(gè)元素自動賦0值。///應(yīng)該是你想要的答案2) 只能給元素逐個(gè)賦值,不能給數(shù)組整體賦值。例如給十個(gè)元素全部賦1值,只能寫為: int a[10]=而不能寫為: int a[10]=1;3) 如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個(gè)數(shù)。例如: int a[5]=可寫為: int a[]=對于二維數(shù)組初始化賦值還有以下說明:1) 可以只對部分元素賦初值,未賦初值的元素自動取0值。///應(yīng)該是你想要的答案 例如: int a[3][3]= 是對每一行的第一列元素賦值,未賦值的元素取0值。 賦值后各元素的值為: 1 0 0 2 0 0 3 0 0 int a [3][3]=賦值后的元素值為: 0 1 0 0 0 2 3 0 0 2) 如對全部元素賦初值,則第一維的長度可以不給出。 例如: int a[3][3]=可以寫為:int a[][3]=3) 數(shù)組是一種構(gòu)造類型的數(shù)據(jù)。二維數(shù)組可以看作是由一維數(shù)組的嵌套而構(gòu)成的。設(shè)一維數(shù)組的每個(gè)元素都又是一個(gè)數(shù)組,就組成了二維數(shù)組。當(dāng)然,前提是各元素類型必須相同。根據(jù)這樣的分析,一個(gè)二維數(shù)組也可以分解為多個(gè)一維數(shù)組。C語言允許這種分解。如二維數(shù)組a[3][4],可分解為三個(gè)一維數(shù)組,其數(shù)組名分別為:a[0]a[1]a[2]對這三個(gè)一維數(shù)組不需另作說明即可使用。這三個(gè)一維數(shù)組都有4個(gè)元素,例如:一維數(shù)組a[0]的元素為a[0][0],a[0][1],a[0][2],a[0][3]。必須強(qiáng)調(diào)的是,a[0],a[1],a[2]不能當(dāng)作下標(biāo)變量使用,它們是數(shù)組名,不是一個(gè)單純的下標(biāo)變量。以上是我找的資料,希望對你有幫助
置0int a[1000][1000]; memset(a, 0, sizeof(int)*1000*1000);
你的編譯器的問題,asnic99標(biāo)準(zhǔn)里inta[10]=a[10]=JAVA數(shù)組初始化;數(shù)組a的值都被初始化為了0,應(yīng)該是你編譯器過老的緣故,問題2也是

5,關(guān)于數(shù)組的初始化簡單問題高手來看看吧

由于C語言不支持動態(tài)數(shù)組,所以實(shí)現(xiàn)動態(tài)數(shù)組需要迂回的方法。 可以先從一維動態(tài)數(shù)組開始,最簡單的方法是聲明一個(gè)指針,指向malloc開辟一塊空間,這個(gè)指針就是一個(gè)動態(tài)數(shù)組了。那么現(xiàn)在就是用吧!如果這個(gè)動態(tài)數(shù)組只是一個(gè)字符串還沒有什么,如果是別的什么數(shù)組,那就麻煩了!數(shù)組長度是多少?哦,對了,再聲明一個(gè)int變量保存數(shù)組的長度就好了!對,就是這樣,為了使用起來更方便,我們把它變成一個(gè)結(jié)構(gòu)體好了: typedef char DataType; //這里表明我們的動態(tài)數(shù)組是char類型,但你當(dāng)然可以把它改成你所需要的任意類型 typedef struct DataType *base; //數(shù)組元素的基地址 int bound; //數(shù)組長度 }Array1; 當(dāng)然,把這個(gè)做成類那就更好了,如果再支持動態(tài)數(shù)據(jù)類型那就更更好了。這當(dāng)然是可以實(shí)現(xiàn)的,但這里只講講動態(tài)多維數(shù)組的原理,就不用那么復(fù)雜了。 下面,如果是動態(tài)二維數(shù)組呢,我們直接上結(jié)構(gòu)體好了: typedef char DataType; //每次都要聲明這個(gè)東西真是有點(diǎn)累!不過這里我們假定這個(gè)和上面那個(gè)是為不同的程序聲明的。嗯~從下次開始,我就不再寫這行了,假定所有的這些都在一個(gè)文件中! typedef struct DataType *base; //數(shù)組元素的基地址 int bound1; //第一維數(shù)組長度 int bound2; //第二維數(shù)組長度 }Array2; 注意,malloc開辟一塊空間的時(shí)候,長度是bound1*bound2*sizeof(DataType)! 再接下來,動態(tài)三維數(shù)組: typedef struct DataType *base; //數(shù)組元素的基地址 int bound1; //第一維數(shù)組長度 int bound2; //第二維數(shù)組長度 int bound3; //第三維數(shù)組長度 }Array3; 舉一反三……嘿嘿,那八維數(shù)組呢……那3680維呢?(壞笑~) 這有什么難的,看我的: #define dim 3680 //你想要多少都行! typedef struct DataType *base; //數(shù)組元素的基地址 int bound[dim]; //所有維的數(shù)組長度的數(shù)組 }Array_dim; 怎么樣,還可以吧?嗯,好是好,只不過數(shù)組的維度不是動態(tài)的?!唉,簡直是動態(tài)狂!那好吧,看我出絕招! typedef struct DataType *base; //數(shù)組元素的基地址 Array1 bounds; //所有維的數(shù)組長度的數(shù)組 }Array_dim2; 嘿嘿,看不懂了吧!我把bound[dim](所有維的數(shù)組長度的數(shù)組)變成了動態(tài)數(shù)組了!好吧好吧,我把它展開一下,好看的更清楚: typedef struct DataType *base; //數(shù)組元素的基地址 int dim; //數(shù)組的維數(shù) int *bounds; //數(shù)組的每一維的數(shù)組長度的數(shù)組的指針 }Array_dim3; 這個(gè)效果還可以吧!數(shù)組的維數(shù)(dim)是動態(tài)的,每一維的數(shù)組長度儲存在bounds指針指向的數(shù)組中!注意:動態(tài)維數(shù)的動態(tài)數(shù)組的長度是每一維的數(shù)組長度的乘積再乘數(shù)據(jù)類型的長度: bounds[0]*bounds[1]……*bounds[dim-1]*sizeof(DataType)當(dāng)然,放在for循環(huán)中使i從0到dim-1,反復(fù)乘bounds[i]即可。 終于結(jié)束了了!不過從Array_dim3出發(fā)還是可以繼續(xù)派生更多的東西,比如類(有構(gòu)造函數(shù)、析構(gòu)函數(shù)的那種?。蛘呓o每個(gè)維度加上一個(gè)名字(比如直角坐標(biāo)系中三維空間的名字可以叫x、y、z,當(dāng)然也可以是長、寬、高或者其他的名字)! 文章中,int *constants的一個(gè)動態(tài)數(shù)組(當(dāng)然是一維的),數(shù)組的長度是dim,就是維度。這樣,constants[]可以視為Array(動態(tài)維度的動態(tài)數(shù)組)的每個(gè)緯度的名字。當(dāng)然,注釋說constants[]是“數(shù)組存儲映像常量”。我就認(rèn)為這是每個(gè)緯度的名字的挪用吧。

6,如何初始化數(shù)組的值

import java.util.*; public class MultiDimArray { static Random rand = new Random(); public static void main(String[] args){ int[][] a1 = { {1 ,2 , 3}, {4, 5, 6}, }; for(int i = 0; i < a1.length; i++) for(int j = 0; j < a1[i].length; j++) System.out.println("a1[ "+ i +"][" + j +"] = " + a1[i][j]); int[][][] a2 = new int[2][2][4]; for(int i = 0; i < a2.length; i++) for(int j = 0; j < a2[i].length; j++) for(int k = 0; k < a2[i][j].length; k++) System.out.println("a2[" + i + "][" + j +"][" + k +" ]= " +a2[i][j][k]); int[][][] a3 = new int[rand.nextInt(7)][][]; for(int i = 0; i < a3.length; i++){ a3[i] = new int[rand.nextInt(5)][]; for(int j = 0; j < a3[i].length; j++ ) a3[i][j] = new int[rand.nextInt(5)]; }
java中數(shù)組常用的方法基本都被包含在里面 import java.util.*; public class MultiDimArray { static Random rand = new Random(); public static void main(String[] args){ int[][] a1 = { {1 ,2 , 3}, {4, 5, 6}, }; for(int i = 0; i < a1.length; i++) for(int j = 0; j < a1[i].length; j++) System.out.println("a1[ "+ i +"][" + j +"] = " + a1[i][j]); int[][][] a2 = new int[2][2][4]; for(int i = 0; i < a2.length; i++) for(int j = 0; j < a2[i].length; j++) for(int k = 0; k < a2[i][j].length; k++) System.out.println("a2[" + i + "][" + j +"][" + k +" ]= " +a2[i][j][k]); int[][][] a3 = new int[rand.nextInt(7)][][]; for(int i = 0; i < a3.length; i++){ a3[i] = new int[rand.nextInt(5)][]; for(int j = 0; j < a3[i].length; j++ ) a3[i][j] = new int[rand.nextInt(5)]; } for(int i = 0; i < a3.length; i++) for(int j = 0; j < a3[i].length; j++) for(int k = 0; k < a3[i][j].length; k++) System.out.println("a3[" + i + "][" + j + "][" + k + "] = " + a3[i][j][k]); Integer[][] a4 = { {new Integer(1), new Integer(2)}, {new Integer(3), new Integer(4)}, {new Integer(5), new Integer(6)}, }; for(int i = 0; i < a4.length; i++) for(int j = 0; j
文章TAG:數(shù)組初始化JAVA數(shù)組初始化

最近更新