免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 120306 | 回复: 442
打印 上一主题 下一主题

对C语言指针的讨论:应当如何理解、使用指针?《狂人C:程序员入门必备》有奖试读 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-10 10:02 |只看该作者 |倒序浏览
获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-1859468-1-1.html

对C语言指针的讨论:应当如何理解、使用指针?《狂人C:程序员入门必备》有奖试读讨论!

指针是C语言的精华,也被公认为是C语言的难点之一。一直以来,指针成了许多初学者迈入C殿堂的拦路虎。指针在许多人的眼中如此的诡异,原因到底是什么?喋喋不休地强调“指针就是地址”究竟是更能深刻地理解指针还是增强了对指针的误解?指针真的很难吗?
《狂人C》对指针进行了独到的诠释和讲解。该书把指针的概念体系建立在“Object”、“左值”等基本概念之上,把指针分为了三类,对指向数据的指针采用了一种新颖的图示方法。这种意在使学习者能更准确清晰地理解指针概念的努力的得失利弊非常值得认真探讨。

本次讨论的主要议题有:

1.  一元&运算是否应该翻译成“求指针运算”而不是“求地址运算”
2.  数组名有两种类型吗?
3.  “指针就是地址”的说法是否掩盖了指针的实质?
4.   void *类型的指针究竟是可以指向任何对象还是不指向任何对象?
本次活动同样欢迎对该书的第8章试读样张发表看法和评议。此外,对于该书中采用汉语拼音作为标识符,看来已经成为了一个争议的焦点,本次活动同样欢迎参加者对此或该书的其他任何内容发表高见。


活动参与:
1、就以上各种问题,发表自己的看法,提出自己的见解
2、将自己在生产实践中的经验发表出来让大家一起讨论
3、可以向各位邀请嘉宾提问相关问题
4、还可以针对《狂人C:程序员入门必备》这本书的内容进行提问


邀请讨论嘉宾
本次活动邀请了许多嘉宾参加,他们中不但有资深C程序员也有许多初学者。我们期待并相信大家会在讨论中会有非常精彩的发言为这次活动争光添彩。
cugb_cat   ChinaUnix论坛C/C++版版主,工作主要涉及分布式系统、数据库系统等研发和运营工作

lenky0401 ChinaUnix论坛C/C++版版主,资深专家。

KBTiller  C语言忠实爱好者,资深专家。

abi_zhu 主要从事嵌入式系统软硬件开发、上位监控系统开发工作。从业近10年。

戴庆宇 资深电力系统软件工程师,对该类软件的系统架构、产品研发具有丰富的经验,现研究方向为智能电网方面.



同时也欢迎大家自荐成为论坛讨论嘉宾,新的讨论嘉宾也正在邀请中,欢迎您的加入。

《狂人C:程序员入门必备》精彩试读

第8章 结构体、共用体与位运算
http://book.chinaunix.net/showart.php?id=8551
第9章 指针
http://blog168.chinaunix.net/space.php?uid=23387202&;do=blog&id=35437
http://blog168.chinaunix.net/space.php?uid=23387202&;do=blog&id=35525
http://blog168.chinaunix.net/space.php?uid=23387202&;do=blog&id=35589
第13章 程序组织与编译预处理(原书的初稿)
http://blog.chinaunix.net/u3/112077/showart.php?id=2187589



讨论有奖:
《狂人C:程序员入门必备》图书 10本
针对某一个会员,有价值的讨论帖超过5贴,将有机会获得《狂人C:程序员入门必备》一书。(水贴不计,先到先得)
欢迎大家积极讨论,更欢迎大家自荐为讨论嘉宾。如有任何疑问请联系:无风之谷[url=mailtouguangyao@it168.com]xuguangyao@it168.com[/url]

论坛徽章:
0
2 [报告]
发表于 2010-12-10 15:32 |只看该作者
“指针就是地址”的说法恰恰说明了指针的实质

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
3 [报告]
发表于 2010-12-10 15:36 |只看该作者

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
4 [报告]
发表于 2010-12-10 16:48 |只看该作者
我从大学时候学习谭浩强老师的C语言开始,就对这个指针(一会&,一会*)搞得是晕头转向的。毕业后直接放弃了C而做PB去了(在2000年PB还是比较热门的)。
现在后想是比较后悔,当时坚持一下做C就好了。

论坛徽章:
0
5 [报告]
发表于 2010-12-10 16:50 |只看该作者
一两个*放在一起好理解

多了,就难了

论坛徽章:
0
6 [报告]
发表于 2010-12-10 21:50 |只看该作者
先支持一个~

论坛徽章:
0
7 [报告]
发表于 2010-12-10 22:05 |只看该作者
是不是可以反向考虑一下,假如你有一种需求,指针正是你需要操作地址但又不必面对真正的物理地址。
建议对C的学习感觉难以深入的不妨先学下Perl。

论坛徽章:
0
8 [报告]
发表于 2010-12-11 00:15 |只看该作者
那你的入门起点有些高了。复杂的数据类型往往伴随着复杂的算法(或解题算法)。一个能构建复杂数据类型并将实现相关算法的程序员,其水平不能说是入门吧?我觉得熟悉语法和语义,不借助参考书、编译器能够编写无语法和语义错误的程序就算入门了。
mirnshi 发表于 2010-12-10 23:38

我认为程序员精通C是最起码的
但仅仅精通C是远远不够的
所以精通了C才算程序员“入门”

但是这本书的起点很低
尽管要经历不短的路程才能精通C

“熟悉语法和语义,不借助参考书、编译器能够编写无语法和语义错误的程序”究竟算不算程序员
恐怕是值得商榷的

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
9 [报告]
发表于 2010-12-11 00:26 |只看该作者
上一贴讨论的不算啦?
哈哈,我的回帖应该满5贴了吧,送我一本我给我徒弟嘛-_-;

论坛徽章:
0
10 [报告]
发表于 2010-12-11 00:34 |只看该作者
“指针就是地址”的说法恰恰说明了指针的实质
starzhestarzhe 发表于 2010-12-10 15:32

我觉得不能那么说
地址只是内存单元的编号
对这个编号是不可能进行什么运算的

实际上,对指针的操作(运算)很大一部分是对“一块内存”的操作,而不是对内存单元编号(地址)的操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP