返回第二十三章 轮回法则(上)(1 / 2)程序媛养成计划首页
最新网址:m.paowxw.com

「和一维数组一样,二维数组同样有两种初始化方式,一种是一次性把所有数据都放进去,比如说这里的地图数据:

int map[8][8]={

{0, 0, 3, 3, 3, 0, 0, 0},

{0, 0, 3, 4, 3, 0, 0, 0},

{0, 0, 3, 0, 3, 3, 3, 3},

{3, 3, 3, 2, 0, 2, 4, 3},

{3, 4, 0, 2, 1, 3, 3, 3},

{3, 3, 3, 3, 2, 3, 0, 0},

{0, 0, 0, 3, 4, 3, 0, 0},

{0, 0, 0, 3, 3, 0, 0, 0}};

从这种表示方法也可以推断出老爹跟你说的,二维数组其实就是一个一维数组,只不过它的每个元素也是一个以为数组。

第二方式就是一个一个的往数组里面放数据,例如:

map[0][1]= 1;

代表的编号为0的小袋子里面的第一元素是1,以此类推。」

「那可不可以向大袋子里面一个一个的装小袋子呢?」

我突发奇想道。

「在C语言里面按照正规操作是不可以的哦!」

老爹意味深长地笑道。

「那非正规方式呢?」

我贼兮兮地问道。

「这个得等到你学了指针再说。」

老爹似乎早就知道我会有此一问,于是轻描淡写地就把我给打发了。

「哼!」

我斜着眼睛白了老爹一眼。

「既然已经说到了数组,那就顺带把字符串也给说了吧。还记得你写的第一个输出『hello world』的程序么?」

「当然记得咯!」

「那还记得『hello world』当时是放在什么符号里面的么?」

「双引号!」

我在心里默默地将hello world程序给写了一遍。

「准确的说是英文双引号,在C语言中,英文双引号就代表一个字符串,字符串中的内容就是双引号里面的内容,现在我们来研究一下『hello world』这个字符串。

char str[]=“hello world“;

猜猜上面这个字符数组str的长度是多少。」

「哼!事出反常必有妖,既然你让我猜,说明真实的长度绝对不是表面上数的那么多,按照字符数,长度本来应该是10。嗯……我猜11!」

我思索了一下,然后不怎么确定地报出了自己的答案。如果说是10,那肯定会错!

果不其然,老爹脸上露出了一丝惊讶的表情。

「居然被你蒙对了,其实上面的定义和这句代码等效:

char str[]={'h','e','l','l','o','','w','o','r','l','d','\0'};

最后一个字符叫做反斜杠零,是字符串的结束符。计算机一旦检测到这个字符,就算后面还有字符,也不会在进行相关操作了。

还有,这个反斜杠叫做转义符,用来启动或者关闭一些字符的特殊功能。」

「嗯?奥特曼的变身器?」

「可以这么理解,我举个例子吧,还记得反斜杠n么?这个时候反斜杠就启用了字符n的特殊功能——换行,于此相似的还有反斜杠b、t、r等,还有刚刚说到的反斜杠0。」

「上面的是开启特殊功能,那关闭怎么说呢?」

「刚刚说了,双引号代表的是一个字符串,也就是说,双引号是具有特殊意义,那如果我们需要在字符串中使用双引号怎么办?比如说要输出这句话:『Dad said:“C is very fun!“』。」

「哈哈,你都说了用反斜杠关闭它的特殊功能啊,多半就是这样了吧: