>第 8 章 数组>字符串

Laciq 530107999@qq.com
2009-06-26 12:58:19

[注意每个字符末尾都有一个字符'\0'做结束符]
好像少了一个字,应该是每个字符串末尾。


宋劲杉 songjinshan@akaedu.org
2009-06-26 17:15:56

谢谢指出!已修正。


宇 wadenx@126.com
2009-07-17 22:28:48

你好,我在看您的教材.就其中函数参数列表中每个参数都要指明类型,同种类型也不例外.而在变量定义时则可以一个类型后面带一堆变量.我去论坛问了.大家的意见都说是为了整齐严谨..是铁规定.没涉及到原理的问题.您说是不得不这样规定.这其中的原因我不明白.不知可否麻烦您百忙中抽空为我解释下.谢谢.感激不尽.


宋劲杉 songjinshan@akaedu.org
2009-07-18 08:34:58

已经有不少人问我这个问题了,看来我有必要解释一下了。谢谢


macunix portisere@qq.com
2009-07-24 21:53:54

通常 NUL 来表示 '\0'


宋劲杉 songjinshan@akaedu.org
2009-07-25 15:51:12

'\0'该怎么叫不是在这里才定义的,回去看第2章最后一节。


别 rz_bie@163.com
2009-11-25 18:28:03

就其中函数参数列表中每个参数都要指明类型,同种类型也不例外.而在变量定义时则可以一个类型后面带一堆变量.我去论坛问了.大家的意见都说是为了整齐严谨..是铁规定.没涉及到原理的问题.您说是不得不这样规定.这其中的原因我不明白.不知可否麻烦您百忙中抽空为我解释下. 这位所讲的问题,我也不明白,请你抽空的时候,给我讲解一下,可以吗?


宋劲杉 songjinshan@akaedu.org
2009-12-27 16:12:52

这个怪我说得不够清楚。参数列表的语法这么规定是为了实现编译器的方便。

参数列表->列表项, 列表项, ...
列表项->类型 变量名

如果有的列表项有类型,有的列表项没有类型(类型和前一列表项的类型相同),那实现起来就复杂了。


volcanol lilinly225@163.com
2010-07-15 20:17:24

   大侠,您好。这一句有点不明白:
   char c = "Hello, world.\n"[0];

为什么可以这样定义,  这是什么意思?


宋劲杉 songjinshan@gmail.com
2010-07-19 22:17:14

我觉得书上原文已经解释了你的疑问了,请问还有哪里不明白?


火星芋头 guangxingzhao@gmail.com http://www.xingxingjia.com/
2010-07-20 21:12:20

刚开始看到这句话我也费解了很长时间,是不是应该多给出一条输出语句便于理解。
---------------------------------
char c="Hello,world."[0];
printf("%c\n",c);


宋劲杉 songjinshan@gmail.com
2010-07-27 23:21:46

好吧。既然不止一个人这么说,我就研究一下怎么改改吧:
把"Hello, world.\n"这个字符串字面值看作一个数组,从上图可以看出,第0个元素是字符'H'
这么解释可以了吧?


胡 waterloo2005@gmail.com
2010-09-18 10:28:09

char str[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };

str的后四个元素没有指定,自动初始化为0,即Null字符。

这里“自动初始化为0“中的0不是Null吧?谢谢


宋劲杉 songjinshan@gmail.com
2010-09-18 21:03:29

怎么不是了


胡 waterloo2005@gmail.com
2010-09-19 14:48:22

应该是'\0'等于Null吧?谢谢


宋劲杉 songjinshan@gmail.com
2010-09-20 08:44:59

'\0'和0是相等的


caozhijie czj627@126.com
2012-01-13 16:48:35

是否有必要解释一下"\0"
书面的符号"\0"表示一个字符,这个字符什么都不是,即用打印函数来打印"\n"表示的这个字符,将什么都不打印。
这个什么都不是的字符的编码和整数0的编码相同。



如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!