书上有一段看不懂,请指教!
数组元素是float型,每元素占4个字节,则p+1意味着使p的值(是地址)加4个字节,以使它指向下一个元素。p+1所代表的地址实际上是(p+1)×d,d是一个元素所占字节数。若p的值是2000,p+1的值不是2001,而是2004.就这段看不懂!如果按照(p+1)×d的计算方式,p+1的值岂不是8004了吗? (p+1)×d写错了,应该是p+(1×d) p+(1*d) p+(1*d)吧。。。我觉得。 本帖最后由 水木人生88 于 2014-10-11 20:47 编辑
仰望天上的光 发表于 2014-10-11 18:07
(p+1)×d写错了,应该是p+(1×d)
谭浩强c程序设计 第四版 232页的9--13行,估计是书上错了! 水木人生88 发表于 2014-10-11 20:40
谭浩强c程序设计 第四版 232页的9--13行,估计是书上错了!
这个只是笔误而已。。。老谭的书最致命的缺陷是对指针的描述是完全错误的(虽然书上说的很好理解),当然我只看过他早期版本的书,不知道现在改过来没有。 p+1 是 p + (1 * d) 小弟猜应该是没错的
(p+1)*d中d代表的float类型所占的字节数,难道p+1 == p+1*d么,感觉不可能吧 语言天赋怎么体现 这个...楼上已有答案 小伙很仔细嘛。。。。。。。 公式错了,由上面说的p+1意味着使p的值加4个字节,可知若p的值是2000,则p+1的值就是2000+4=2004.也就是说上面(p+1)*d是错的,正确的是p+1*d. 书上写错了 书上的错误,楼主很细心~ 学习
页:
[1]