免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 无风之谷
打印 上一主题 下一主题

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

论坛徽章:
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
411 [报告]
发表于 2011-01-29 16:58 |只看该作者
这个也该开了啊。

论坛徽章:
0
412 [报告]
发表于 2011-01-29 23:58 |只看该作者
starzhestarzhe 2 “指针就是地址”的说法恰恰说明了指针的实质 →_→反对只有当void ,空指针,时才能说指针是地址

论坛徽章:
0
413 [报告]
发表于 2011-01-30 09:42 |只看该作者
starzhestarzhe 2 “指针就是地址”的说法恰恰说明了指针的实质 →_→反对只有当void ,空指针,时才能说指 ...
A13433758072 发表于 2011-01-29 23:58



    能说说您的理由吗?

论坛徽章:
0
414 [报告]
发表于 2011-02-01 11:47 |只看该作者
回复 413# KBTiller





9.11  指向虚无的指针
    C语言中有一种数据类型是“void”类型,这种类型的特点就是没有任何值。
    与这种类型相对应,C语言中还有一种“void *”类型的指针,这种指针不指向任何类型的内存对象,但具有一个值,这个值当然也是地址。只有对于这种类型的指针,说“指针就是地址”才是一种恰当的说法。对于其他类型说“指针就是地址”显然是掩盖了指针更为本质、更为重要的内涵—指针所指向的数据对象或函数的类型。
    作为一种只有值而没有更多含义的“void *”类型的指针,其作用仅仅在于传递、保存这个值。“void *”类型的指针可以参加赋值运算(包括作为函数的参数)和类型转换运算,除此之外,“void *”类型的指针不可以进行其他任何运算,甚至一元“*”运算这种多数指针类型的基本运算也不可以。
但是“void*”类型指针的最大优点在于,无论什么类型的指针赋值给“void*”都不用类型转换,反之亦然。然而不少严谨的人士却并不领这个情,他们一如既往地、明白地写出这种转换,尽管他们知道这不是必须的。
    在写函数定义时,可能并不清楚函数的调用者会提供什么样的指针,这时只能把对应的形参声明为“void *”类型;同样也有可能不清楚函数调用者需要什么样的指针,这时也只能把函数的返回值声明为“void*”类型。

   



出自http://blog.chinaunix.net/space. ... o=blog&id=35589对于您的版权我当然不敢侵犯拉拉.........

论坛徽章:
0
415 [报告]
发表于 2011-02-01 15:39 |只看该作者
但是“void*”类型指针的最大优点在于,无论什么类型的指针赋值给“void*”都不用类型转换,反之亦然。然而不少严谨的人士却并不领这个情,他们一如既往地、明白地写出这种转换,尽管他们知道这不是必须的。


显示的类型转换只是为了让其它程序员能更轻松的看懂你写的代码……不是别人傻,不知道省略……

论坛徽章:
0
416 [报告]
发表于 2011-02-02 08:55 |只看该作者
回复 414# A13433758072


    呵呵,谢谢

论坛徽章:
0
417 [报告]
发表于 2011-02-02 08:57 |只看该作者
显示的类型转换只是为了让其它程序员能更轻松的看懂你写的代码……不是别人傻,不知道省略……
0vk0 发表于 2011-02-01 15:39



    和您的见解一致。C程序员应当修边幅
    不仅别的程序员能更轻松看懂,对自己也是如此

论坛徽章:
0
418 [报告]
发表于 2011-02-02 09:45 |只看该作者
过年了
在这里给大家拜个年
谢谢大家的关注和支持
祝大家幸福吉祥万事如意
file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/G@YVKCPZR)X%7D3UKB(_VF%60LW.gif

论坛徽章:
0
419 [报告]
发表于 2011-02-02 19:30 |只看该作者
指针就是地址这种说法是只看见一根小木棍,却忽略了整个森林。

地址只是指针的实现之一,是指针抽象在符合冯诺依曼这种体系的计算机中的体现,在这种体系中,每个对象都具有存储,于是,这些对象都自然而然地附加了存储的性质:地址。

指针的本质是什么?其实就两个字:引用!

论坛徽章:
0
420 [报告]
发表于 2011-02-03 10:44 |只看该作者
回复 419# supermegaboy


    这个见解很新颖,很深刻
    只是,void *应该如何理解呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP