for迴圈給陣列賦值 010 陣列

2021-10-11 08:38:11 字數 2273 閱讀 5108

1.陣列概述和特點

陣列的定義

陣列是相同型別資料的有序集合。陣列描述的是相同型別的若干個資料,按照一定的先後次序排列組合而成。其中,每乙個資料稱作乙個元素,每個元素可以通過乙個索引(下標)來訪問它們。陣列的三個基本特點:

1. 長度是確定的。陣列一旦被建立,它的大小就是不可以改變的。

2. 其元素必須是相同型別,不允許出現混合型別。

3. 陣列型別可以是任何資料型別,包括基本型別和引用型別。

2. 陣列宣告

陣列的宣告方式有兩種(以一維陣列為例)

type arr_name; //(推薦使用這種方式)

type arr_name;

注意事項

1. 宣告的時候並沒有例項化任何物件,只有在例項化陣列物件時,jvm才分配空間,這時才與長度有關。

2. 宣告乙個陣列的時候並沒有陣列真正被建立。

3. 構造乙個陣列,必須指定長度。

建立基本型別一維陣列

基本型別陣列記憶體分配圖

建立引用型別一維陣列

引用型別陣列記憶體分配圖

3.初始化

陣列的初始化方式總共有三種:靜態初始化、動態初始化、預設初始化。

靜態初始化

除了用new關鍵字來產生陣列以外,還可以直接在定義陣列的同時就為陣列元素分配空間並賦值。

靜態初始化陣列

int a = ;// 靜態初始化基本型別陣列;

man mans = ;// 靜態初始化引用型別陣列;

動態初始化

陣列定義與為陣列元素分配空間並賦值的操作分開進行。

動態初始化陣列

int a1 = new int[2];//動態初始化陣列,先分配空間;

a1[0]=1;//給陣列元素賦值;

a1[1]=2;//給陣列元素賦值;

陣列的預設初始化

陣列是引用型別,它的元素相當於類的例項變數,因此陣列一經分配空間,其中的每個元素也被按照例項變數同樣的方式被隱式初始化。

int a2 = new int[2]; // 預設值:0,0

boolean b = new boolean[2]; // 預設值:false,false

string s = new string[2]; // 預設值:null, null

4.陣列的遍歷

陣列元素下標的合法區間:[0, length-1]。我們可以通過下標來遍歷陣列中的元素,遍歷時可以讀取元素的值或者修改元素的值。

使用迴圈遍歷初始化和讀取陣列

5.for-each迴圈

增強for迴圈for-each是jdk1.5新增加的功能,專門用於讀取陣列或集合中所有的元素,即對陣列進行遍歷。

注意事項

1. for-each增強for迴圈在遍歷陣列過程中不能修改陣列中某元素的值。

2. for-each僅適用於遍歷,不涉及有關索引(下標)的操作。

迴圈給陣列賦值 PHP 迴圈引用的問題

為了引出問題,先來看下面一段 這段 很簡單,輸出陣列的元素兩次,感覺會輸出兩次 abcd?不好意思,輸出結果如下 是不是感覺很奇怪?我沒有給陣列賦值啊,陣列的最後乙個元素怎麼在第二次迴圈的時候改變了呢?再來看下面一段修改過得 是不是發現了什麼?修改each變數會修改arr的最後乙個元素,這是為什麼呢...

如何給給字元陣列賦值

要說c語言中最讓我覺得棘手的,就是字元陣列的,c語言中沒有字串這個型別,字串只能存放在字元型陣列中。那麼,我們先來看看如何給乙個一維陣列賦值 1 定義的時候直接賦值 char arr 10 這種寫法也可以直接省略花括號,直接寫成 char arr 10 kitty 2 初始化列表,把各個字元依次賦給...

給多維陣列物件賦值

var messagetable new function var messageinfo function passparm messageinfo messagetable messageinfo i messageid message messageinfo i message message...