當前位置:首頁 » 密碼管理 » 二維數組訪問

二維數組訪問

發布時間: 2022-08-31 17:47:26

python字典可以用二維數組形式訪問

python中是沒有數組的,只有列表(比如list=[1,2,3],二維的就是嵌套,比如list=[1,[1,2]])和字典(比如dic{1:2,3:4})
他們和數組組大的區別就是數組是有序的,而他們是無序的

php 二維數組的訪問

您的那個數組是不是寫錯了?應該是這樣的吧?
Array(
[0]=>Array(
[id]=12345
)
)
這不是一個二維數組。。。是三維數組
這樣訪問即可:$myarray['sheep'][0]['id']
一維數組訪問
例:
//建立數組
$arr=array(
"key"=>"value"
);
//訪問數組「key」元素
echo$arr["key"];
二維數組訪問
例1:
//建立數組
$arr=array("key"=>array("key2"=>"value"));
//訪問二維數組「key2」元素
echo$arr["key"]["key2"];
例2:
//建立數組
$arr=array(array("key2"=>"value"));
//訪問二維數組「key2」元素
echo$arr[0]["key2"];
更多維數組以此類推
$arr["鍵值"]["鍵值"]["鍵值"]["鍵值"]["鍵值"]。。。。

Ⅲ 用指向數組元素的指針訪問二維數組

int(*p)[10]定義了一個指向二維數組的指針p,賦給它10個長度。然後把a數組的值賦給(*p)[10],注意,這里是a數組是5行10列的,放入(*p)[10]是把a[0][0],a[0][1],a[0][2],a[0][3],a[0][4],a[0][5],a[0][6],a[0][7],a[0][8],a[0][9]放入(*p)[0]中,同理,將a[1][0...9]放入(*p)[1]。最後(*p)[10]中的值只有五行被初始化為a數組的值了。
在本例中,p和p[0]是同一個意思,就是數組a的起始地址,等價於cout<<a<<endl,但是他們有區別,p指向的是整個數組的首地址,而p[0]則指向a的首行首地址(繼續往下看...)。
p[9]則值內存為p數組分配的(*p)[9]的地址。如果你仔細驗證程序的輸出結果,你就會發現:
#include
#include "iostream"
using std::cout;
using std::endl;
using std::hex;
void main()
{
int a[5][10]={1,2};
int (*p)[10]=a;
cout<<p<<endl;
cout<<p[0]<<endl;
cout<<p[9]<<endl;
}
輸出結果為(不同機器結果不同):
0012FEB8
0012FEB8
00130020
如果你驗證它們這些地址存儲的值,你會發現:
#include
#include "iostream"
using std::cout;
using std::endl;
using std::hex;
void main()
{
int a[5][10]={1,2};
int (*p)[10]=a;
cout<<*p<<endl;
cout<<(*p)[0]<<endl;
cout<<(*p)[9]<<endl;
}
輸出結果為:
0012FEB8
1
0
這是p和p[0]的區別就體現出來了。因為*p並不是取首元素的值,它這時才相當於p[0]。那如何通過p取得首元素的值呢,很顯然,應該再加一個*操作符,如下:
cout<<**p<<endl;
這時輸出結果自然就會和(*p)[0]一樣是1了。

Ⅳ 在JNI中怎麼訪問JAVA中的二維數組

二維數組可以看成是以一維數組為元素的一維數組。通常將最外層的一維數組稱為外維數組;而作為元素的內層數組稱為內維數組。如下:
//聲明一個字元串類型的二維數組,其中外維數組的長度為3,內維數組的長度為2。
String[][] province = new String[3][2];
而二維數組的賦值與一維數組類似,它也可以通過中括弧和索引來設置初始值,且索引從0開始。如下代碼:
province[0][0] = 「湖南」;
province[0][1] = 「長沙」;
示例表示的是給二維數組province中第一個內維數組的第一個元素和第二個元素設置初始值。關於二維數組,秒秒學上有比較清楚的解釋,你可以了解下的。

Ⅳ 實例分析用指針訪問二維數組的幾種方法

之前對數組的概念一直沒有理解透徹,只覺得數組名就是個常量指針而已,用法和基本的指針差不多。所以當我嘗試用二級指針去訪問二維數組時,就經常會出錯。下面就是剛開始寫的一個錯誤的程序: #include <stdio.h intmain(){intiArray[2][3] = {{1,2,3 },{4,5,6}};int**pArray = NULL; pArray = iArray;printf("array[0][0] = %d\n" , pArray[0][0]);printf("array[1][2] = %d\n" , pArray[1][2]);return0;}開始的時候我是這樣分析的:本來數組和指針就差不多,一維數組和一維指針對應,那麼二維數組名應該和二維指針差不多,所以上面那個程序是沒有錯的,應該列印出的是1和6。但是當我實際編譯運行的時候,卻出現了段錯誤,也就是我訪問了不該訪問的地址空間。那錯誤到底出在什麼地方呢?正確的程序應該怎麼寫呢? 為了解決問題,不得不讓我重新理解數組的含義。仔細翻閱一些書籍後,我發現其實數組並不是我原來想像的那麼簡單:一個常量指針標識的一群變數的集合。數組應該也算是一個完備的變數類型:有名字,有大小,也有地址。只不多就是名字和它的地址一樣罷了。也正是因為數組有大小,所以當用sizeof對數組名進行運算時,算出來的是實際數組的大小,而不是指針的大小。 也正是因為這樣,所以指向數組的指針和指向指針的指針也大不一樣。它們倆最明顯的不同就是表現在指針步進的時候。我們知道指針在進行++運算的時候,跨越的實際地址取決於指針指向的數據類型:對於一般的32位機來說,假如指向的是int型數據,跨越的實際地址就是4,指向的是指針型數據,跨越的實際地址也是4,當指向的是數組類型的時候,跨越的實際地址就是數組的長度了。 現在再回頭分析上面那個錯誤程序,根據下標引用符號[]的運算規則,我們知道pArray[0][0]其實就是**pArray,而iArray實際上只是個數組變數名,而它的值就是整個數組的開始地址(其實&iArray,iArray,iArray[0]以及&iArray的值都是數組的開始地址,都是在編譯過程中編譯器賦予的值)。那麼其實*pArray就已經是iArray[0][0]的值了,也就是1,而**pArray則是去訪問地址為1的地址空間中的數據,自然會出段錯誤。 其實用指針訪問二維數組可以直接用一級指針就可以了。比如下面這個程序:intmain(){intiArray[2][3] = {{1,2,3 },{4,5,6}};int*pArray = NULL; pArray = iArray;printf("array[0][0] = %d\n" , *pArray);printf("array[1][2] = %d\n" , *(pArray +1*3+2));return0;}因為數組本身在地址空間中就是連續排列的,根據行數和列數,我們自己計算出訪問單元的地址偏移量就可以用一級指針輕松遍歷二維數組中的所有數據了。 我們還可以嘗試用指向數組的指針來訪問二維數組的成員。下面就是事常式序:intmain(){intiArray[2][3] = {{1,2,3 },{4,5,6}};int(*pArray)[3] = NULL;pArray = iArray;printf("array[0][0] = %d\n" , pArray[0][0]);printf("array[1][2] = %d\n" , pArray[1][2]);return0;}簡單分析一下這個程序:我們知道[]運算符的結合方向是由左向右,pArray[1][2]就等價於(* (pArray + 1))[2],而由於pArray是數組指針,而且數組的長度為3,所以* (pArray + 1)就表示iArray[1]這個數組,則pArray[1][2]則就完全等價於iArray[1][2]。 如果非得想用二級指針來訪問二維數組的話,我們還得借用指針數組(數組內存儲的都是指針類型的數據),下面是事常式序:intmain(){intiArray[2][3] = {{1,2,3 },{4,5,6}};int*ipArray[2] = {iArray[0 ], iArray[1]};int**pArray = NULL; pArray = ipArray;printf("array[0][0] = %d\n" , pArray[1][2]);return0;}由於二級指針要跳兩次,所以中間還需要額外的存儲一級指針的空間。所以一般不建議用二級指針去訪問二維數組。

Ⅵ 如何在smarty里訪問一個二維數組

shenme.php:$l_sql="select * from xiatian where state=1 limit 14";$l_result=mysql_query($l_sql);
$cba=array(); //創建一個數組
while($bow=mysql_fetch_array($l_result)) //開始循環,每次循環從xiatian表裡查詢出1條state=1的記錄,即$bow為一維數組,循環14次
{ $nba=array(); //創建一個數組
$nba['name']=$bow["name"]; //將查詢到的記錄的name值賦給中間數組nba $nba['shac']=$bow["shac"]; //將查詢到的記錄的shac值賦給中間數組nba $cba[]=$nba; //將數組nba賦值給數組cba構成一個二維數組
}
$smarty->assign("pow",$cba); shenm.tpl:{section name=shuchu loop=$pow}
{$pow[shuchu].name}
{$pow[shuchu].shac}
{/section}

Ⅶ as3中二維數組怎麼訪問,請說明詳細點,有代碼說明,謝謝

var arr=[[0,1,2,3,4,5],
[6,7,8,9,10,11],
[12,13,14,15,16,17]];//聲明二維數組

trace(arr[0][4]);//輸出的是4
trace(arr[1][1]);//輸出的是7

Ⅷ 二維數組指針怎麼訪問 比如一維的*a表示訪問數組a的第一字元。

同理,**a,即*(*(a+0)+0),即a[0][0]

熱點內容
我的世界龍蛋伺服器 發布:2025-05-17 06:20:06 瀏覽:912
安卓系統軟體怎麼不更新 發布:2025-05-17 06:19:15 瀏覽:817
安卓夏日傳說存檔放哪個文件 發布:2025-05-17 06:12:44 瀏覽:606
如何通過伺服器id找到主人 發布:2025-05-17 06:12:11 瀏覽:37
ug編程吧 發布:2025-05-17 06:07:45 瀏覽:72
sql臨時表和表變數 發布:2025-05-17 06:02:38 瀏覽:724
蘋果如何用安卓無線耳機 發布:2025-05-17 06:01:53 瀏覽:822
sqlserver表關系 發布:2025-05-17 06:01:02 瀏覽:997
2017途觀配置什麼音響 發布:2025-05-17 05:53:50 瀏覽:844
64位安裝sql2000 發布:2025-05-17 05:33:17 瀏覽:846