今天写一个东西时,突然发现将一些语言的数组申明弄混淆了。特写下来,加强记忆。
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并不符合我们常规意义上的二维数组。