水木人生88 发表于 2014-10-11 17:44:01

书上有一段看不懂,请指教!

数组元素是float型,每元素占4个字节,则p+1意味着使p的值(是地址)加4个字节,以使它指向下一个元素。p+1所代表的地址实际上是(p+1)×d,d是一个元素所占字节数。若p的值是2000,p+1的值不是2001,而是2004.

就这段看不懂!如果按照(p+1)×d的计算方式,p+1的值岂不是8004了吗?

仰望天上的光 发表于 2014-10-11 18:07:20

(p+1)×d写错了,应该是p+(1×d)

牡丹花下死做鬼 发表于 2014-10-11 18:24:13

p+(1*d)

yy57 发表于 2014-10-11 19:18:32

p+(1*d)吧。。。我觉得。

水木人生88 发表于 2014-10-11 20:40:19

本帖最后由 水木人生88 于 2014-10-11 20:47 编辑

仰望天上的光 发表于 2014-10-11 18:07
(p+1)×d写错了,应该是p+(1×d)

谭浩强c程序设计 第四版 232页的9--13行,估计是书上错了!

仰望天上的光 发表于 2014-10-11 21:27:18

水木人生88 发表于 2014-10-11 20:40
谭浩强c程序设计 第四版 232页的9--13行,估计是书上错了!

这个只是笔误而已。。。老谭的书最致命的缺陷是对指针的描述是完全错误的(虽然书上说的很好理解),当然我只看过他早期版本的书,不知道现在改过来没有。

风之残月 发表于 2014-10-15 20:01:18

p+1 是 p + (1 * d)

木丶白水 发表于 2014-10-15 20:41:51

小弟猜应该是没错的
(p+1)*d中d代表的float类型所占的字节数,难道p+1 == p+1*d么,感觉不可能吧

网络学习 发表于 2014-10-16 01:31:50

语言天赋怎么体现

蚯蚓翔龙 发表于 2014-10-16 08:52:05

这个...楼上已有答案

scdwuhan 发表于 2014-10-16 09:16:52

小伙很仔细嘛。。。。。。。

clcl 发表于 2014-10-17 11:57:13

公式错了,由上面说的p+1意味着使p的值加4个字节,可知若p的值是2000,则p+1的值就是2000+4=2004.也就是说上面(p+1)*d是错的,正确的是p+1*d.

jy02229968 发表于 2014-10-17 19:44:03

书上写错了

Mr.屎壳螂 发表于 2014-10-18 23:09:35

书上的错误,楼主很细心~

大个的糖果 发表于 2014-11-1 01:58:31

tlwangxd 发表于 2014-11-4 08:49:20

学习
页: [1]
查看完整版本: 书上有一段看不懂,请指教!