而且C语言为我们提供了两种向口数组面放数据的方式,第一种是一次性放进去:
int arr[10]={0, 1, 2, 3, 4 ,5 ,6, 7, 8, 9};
这样数组会根据右边大括号中的顺序按0到9对这10个数据进行编号,也就是说arr[0]等于0,arr[1]等于1,以此类推,arr[9]等于9。
使用这种方法甚至不用告诉计算机有多少个元素,它会根据大括号里面的内容去推断,所以说用下面这种写法也是可以的。」
int arr[]={0, 1, 2, 3, 4 ,5 ,6, 7, 8, 9};
「这么看来,计算机也并不是完全是个智障嘛,还有一点推断能力。那另外一种放东西的方式是怎样的呢?」
我打趣道。
「哈哈,另外一种,就是一个一个的往里面放咯。就像这种:
int arr[10];
arr[0]= 0;
arr[1]= 1;
……
arr[9]= 9;
不过有一点要注意,如果要一次性把数据放进数组这个袋子里只有一次机会,就是在声明完成之前,像下面这种方式就是错误的,:
int arr[10];
arr ={0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
在执行int arr[10];的时候,数组的声明就已经完成了。」
「好嘛,晓得了。」
我点了点头。
「那对于如何得到一个口袋这块有什么问题么?」
「嗯~,这个倒是没有什么。」
我摇了摇头,然后接着说道:「我在想,如果把刚刚你说的那个地图数据用一个数组把它装起来倒是没有问题,不过好像要得到行号和列号就有些困难了。」
我蹙眉苦思道。
「我们依然用刚刚那个地图数据来说明:
编号_行号_列号 0 1 2 3 4 5 6 7
00____0_______0 0 3 3 3 0 0 0
08____1_______0 0 3 4 3 0 0 0
16____2_______0 0 3 0 3 3 3 3
24____3_______3 3 3 2 0 2 4 3
32____4_______3 4 0 2 1 3 3 3
40____5_______3 3 3 3 2 3 0 0
48____6_______0 0 0 3 4 3 0 0
56____7_______0 0 0 3 3 0 0 0
在左边我标出了每一行第一个元素在数组中的编号以及行号,在上方我标出了列号,你能够看出行号和列号与数组编号的关系吗?」
「行号等于每一行第一个元素的数组标号除以8!列号等于数组编号减去每一行第一个元素的数组编号!」
我惊奇地叫到,仿佛发现了新大陆。
「虽然不是完全正确,但是已经接近真实答案了!再观察一下呢!说不定就发现规律了哦。」
老爹笑了笑。