顶-发现了c专家编程的一个错误 散分

mymtom 2010-09-11 10:00:09
楼太高了,另起一栋
原帖在http://topic.csdn.net/u/20100319/15/dec5ec79-8cff-4449-9de6-c84d4d36fbcd_2.html

原楼主是对的,如果书上是这么说的,书上确实错了
应该是5倍
这本书公司有买,我没有看!
无代码,无真相,有代码,有真相
[code=C/C++]
#include <stdio.h>

int main(void)
{
int apricot[2][3][5];

int (*p)[3][5]=apricot;
int (*r)[5]=apricot[0];
int *t=apricot[0][0];
int u=apricot[0][0][0];

int (*r2)[5]=apricot[0];
int *t2=apricot[0][0];

char *r3, *r4;
char *t3, *t4;

r2++; t2++;

r3 = (char *)r;
r4 = (char *)r2;
t3 = (char *)t;
t4 = (char *)t2;
printf("r =%p r2=%p r2 - r =%d\n", r , r2, (int)(r2 - r ));
printf("r3=%p r4=%p r4 - r3=%d\n", r3, r4, (int)(r4 - r3));
printf("t =%p t2=%p t2 - t =%d\n", t , t2, (int)(t2 - t ));
printf("t3=%p t4=%p t4 - t3=%d\n", t3, t4, (int)(t4 - t3));
}
/*
输出结果:
r =0023FEB0 r2=0023FEC4 r2 - r =1
r3=0023FEB0 r4=0023FEC4 r4 - r3=20
t =0023FEB0 t2=0023FEB4 t2 - t =1
t3=0023FEB0 t4=0023FEB4 t4 - t3=4

编译器gcc 4.4.1:
E:\mymtom\src>gcc -v
Using built-in specs.
Target: mingw32
Configured with: ../../gcc-4.4.1/configure --prefix=/mingw --build=mingw32 --ena
ble-languages=c,ada,c++,fortran,objc,obj-c++ --disable-nls --disable-win32-regis
try --enable-libgomp --enable-cxx-flags='-fno-function-sections -fno-data-sectio
ns' --disable-werror --enable-threads --disable-symvers --enable-version-specifi
c-runtime-libs --enable-fully-dynamic-string --with-pkgversion='TDM-2 mingw32' -
-enable-sjlj-exceptions --with-bugurl=http://www.tdragon.net/recentgcc/bugs.php
Thread model: win32
gcc version 4.4.1 (TDM-2 mingw32)
*/

[/code]
...全文
414 51 打赏 收藏 转发到动态 举报
写回复
用AI写文章
51 条回复
切换为时间正序
请发表友善的回复…
发表回复
bnb45 2010-09-17
  • 打赏
  • 举报
回复
楼主细心地思考了~~
sylvialee 2010-09-12
  • 打赏
  • 举报
回复
up~~~楼主很细心啊
chenjelly 2010-09-12
  • 打赏
  • 举报
回复
看来这娃认真学了,还思考了的,不错,是个好孩子
dingshaofengbinbin 2010-09-11
  • 打赏
  • 举报
回复
顶顶顶!!!!
ElfSundae 2010-09-11
  • 打赏
  • 举报
回复
纯属接分。。
cilluick 2010-09-11
  • 打赏
  • 举报
回复
学习中接分
沭水河畔 2010-09-11
  • 打赏
  • 举报
回复
主席毛說得對,世界上最怕“認真”兩字。
duke56 2010-09-11
  • 打赏
  • 举报
回复
接分喽...

哈哈...
justkk 2010-09-11
  • 打赏
  • 举报
回复
路过..
wasx1 2010-09-11
  • 打赏
  • 举报
回复
楼主好厉害的啊
phbpaul007 2010-09-11
  • 打赏
  • 举报
回复
了了了了尖叫了解了解
phb007paul 2010-09-11
  • 打赏
  • 举报
回复
了了了了尖叫了了了了尖叫
  • 打赏
  • 举报
回复
so good
老邓 2010-09-11
  • 打赏
  • 举报
回复
佩服这么严谨的治学态度!
学习了!!
dukelee 2010-09-11
  • 打赏
  • 举报
回复
是5倍的关系没错.
r是指向5元素数组的指针.
原版里也是3
r++;
t++;
will increment r and t to point to their next respective element, (in
both cases, this element is itself an array). The increment will be
scaled by quite different amounts, because r points to array elements
that are three times larger than the array elements to which t points.
yanchong 2010-09-11
  • 打赏
  • 举报
回复
楼主好样的
十八道胡同 2010-09-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pengzhixi 的回复:]
顶起。
[/Quote]
up
rilon1988 2010-09-11
  • 打赏
  • 举报
回复
楼主学习很认真,我就是缺少这个……
chaoliu1024 2010-09-11
  • 打赏
  • 举报
回复
up
mark...
发霉饼干 2010-09-11
  • 打赏
  • 举报
回复

学习学习!,顺便jf
加载更多回复(16)
内容简介 《C#编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用C#进行程序开发的各种技术和技巧。全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括做好C#程序开发前期准备、掌握c#语言基础之数据类型与变量、领略运算符和表达式带给我们的神奇、巧用流程控制语句、算法、字符串、数组、步入面向对象程序设计的殿堂、使用Windows窗体搭建交互式图形界面、你所必须知道的Windows控件、掌握能够辅助程序开发的Windows控件、数据库管理系统开发必备、LINQ数据访问技术、程序调试与错误处理、打包部署等内容;第2篇为范例演练篇,主要包括基础应用相关、数据库开发相关、图形图像及多媒体应用、WPF图形化显示系统等相关的范例;第3篇为项目实战篇,主要包括明日快递单打印系统、QQ自动登录器、雷速网络下载专家编程词典销售分析系统等4个小型项目;第4篇为商业系统篇,主要介绍一个大型的商业项目,即企业ERP管理系统(C/S架构)。 《C#编程宝典(十年典藏版)》附有配套DVD光盘,光盘中提供了书中全部实例和项目的源代码,这些源代码全部经过精心调试,能够在Windows XP、Windows Server 2003以及Windows 7操作系统下编译和运行。 《C#编程宝典(十年典藏版)》适用于C#的初学者、编程爱好者,同时也可以作为培训机构、大中专院校老师和学生的学习参考用书。

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧