部分语言的数组方式

         今天写一个东西时,突然发现将一些语言的数组申明弄混淆了。特写下来,加强记忆。

  1、C++  

//一维数组
 type name[];
//如
int number[]={1,2,3,4,5};
//二维数组
type name[][]
//如
int number[2][3]={{1,2,3},{1,2,3}};
int number[2][3]={1,2,3,4,5,6};
2、C#

//一维数组
type [] name;
//如
int [] number=new int[5];
or
int [] number;
//二维数组
type [,] name;
//如
int[,] name;
name=new int[2,2];
//多维数组
type[,,,....] name;
3、java
//一维数组
int[] arr1=new int[10];
		
int[] arr2={1,2,3,6};

int[] arr3=new int[]{1,2,3,4,5,6,7,22};
//二维数组
type [][]name;
int [][] arr=new arr[2][2];
or 
int [][]arr1;
arr1=new arr1[2][2];

4、php

//一维数组
数组名=arry();
//如:
$arr=arry();
$arr[0]=1;
$arr[1]=2;

//二维数组
//如
$cars = array
(
    array("Volvo",100,96),
    array("BMW",60,59),
    array("Toyota",110,100)
);
echo $car[0][0];
Volvo;

or
$sites = array 
( 
    "google"=>array 
    ( 
        "Google 搜索", 
        "http://www.google.com" 
    ), 
    "taobao"=>array 
    ( 
        "淘宝", 
        "http://www.taobao.com" 
    ) 
); 

echo $sites ["google"][0];
Google 搜索

5、python

//python 中的数组叫做元组和列表
//元组是使用"()"而列表是使用"[]"

//如
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

//创建空元组
tup1 = ();

//元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,);
//访问
数组名["下标"]

//列表
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
//使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]

//以上实例输出结果:
list1[0]:  physics
list2[1:5]:  [2, 3, 4, 5]


//下面是二维数组的定义:
//直接定义:
 a=[[1,1],[1,1]]
//这里定义了一个2*2的,且初始为0的二维数组。

//间接定义:
 a=[[0 for x in range(10)] for y in range(10)]
//这里定义了10*10初始为0的二维数组。

//还有更简单的字义二维数组的方法:

//定义10*10初始为0的二维数组。
b = [[0]*10]*10
//与
a=[[0 for x in range(10)] for y in range(10)]
//比较:
print a==b
的结果为True。
但用b的定义方法代替a后,以前的可以正常运行的程序也出错了,经过仔细分析得出区别:
a[0][0]=1时,只有a[0][0]为1,其他全为0。
b[0][0]=1时,a[0][0],a[1][0],只到a[9,0]全部为1。
由此得到大数组中的10个小的一维数据全是一个相同的引用,即指向同一地址。
故 b = [[0]*10]*10并不符合我们常规意义上的二维数组。




猜你喜欢

转载自blog.csdn.net/zhushiq1234/article/details/52675071