[注意每个字符末尾都有一个字符'\0'做结束符] 好像少了一个字,应该是每个字符串末尾。
谢谢指出!已修正。
你好,我在看您的教材.就其中函数参数列表中每个参数都要指明类型,同种类型也不例外.而在变量定义时则可以一个类型后面带一堆变量.我去论坛问了.大家的意见都说是为了整齐严谨..是铁规定.没涉及到原理的问题.您说是不得不这样规定.这其中的原因我不明白.不知可否麻烦您百忙中抽空为我解释下.谢谢.感激不尽.
已经有不少人问我这个问题了,看来我有必要解释一下了。谢谢
通常 NUL 来表示 '\0'
'\0'该怎么叫不是在这里才定义的,回去看第2章最后一节。
就其中函数参数列表中每个参数都要指明类型,同种类型也不例外.而在变量定义时则可以一个类型后面带一堆变量.我去论坛问了.大家的意见都说是为了整齐严谨..是铁规定.没涉及到原理的问题.您说是不得不这样规定.这其中的原因我不明白.不知可否麻烦您百忙中抽空为我解释下. 这位所讲的问题,我也不明白,请你抽空的时候,给我讲解一下,可以吗?
这个怪我说得不够清楚。参数列表的语法这么规定是为了实现编译器的方便。 参数列表->列表项, 列表项, ... 列表项->类型 变量名 如果有的列表项有类型,有的列表项没有类型(类型和前一列表项的类型相同),那实现起来就复杂了。
大侠,您好。这一句有点不明白: char c = "Hello, world.\n"[0]; 为什么可以这样定义, 这是什么意思?
我觉得书上原文已经解释了你的疑问了,请问还有哪里不明白?
刚开始看到这句话我也费解了很长时间,是不是应该多给出一条输出语句便于理解。
---------------------------------
char c="Hello,world."[0];
printf("%c\n",c);好吧。既然不止一个人这么说,我就研究一下怎么改改吧: 把"Hello, world.\n"这个字符串字面值看作一个数组,从上图可以看出,第0个元素是字符'H' 这么解释可以了吧?
char str[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };
str的后四个元素没有指定,自动初始化为0,即Null字符。
这里“自动初始化为0“中的0不是Null吧?谢谢怎么不是了
应该是'\0'等于Null吧?谢谢
'\0'和0是相等的
是否有必要解释一下"\0" 书面的符号"\0"表示一个字符,这个字符什么都不是,即用打印函数来打印"\n"表示的这个字符,将什么都不打印。 这个什么都不是的字符的编码和整数0的编码相同。
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!