| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1661 人关注过本帖
标题:【原创】指针的本质和指针学习存在的误区 欢迎大家批评指正
取消只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:1 
【原创】指针的本质和指针学习存在的误区 欢迎大家批评指正
出处
http://all-things-zklhp.tk/?p=231

 ;; **************************************************************************************************************
 ;; Author: zklhp
 ;; Email: zklhp@
 ;; QQ: 493165744
 ;; Last Update: 2014-08-12
 ;; Licensed under CC BY-SA 3.0
 ;; **************************************************************************************************************

* 楔子
因为我经常在bbs.bccn.net回答问题 所以对新人学习C语言过程中的困惑和学习的误区有一定的认识 从我的经验看 对于C语言指针 大部分学习者都没有一个清晰的认识

* 指针的本质

根据我的理解 C语言的指针是一种寻址手段 是计算机间接寻址方式的一种高级语言实现 对于C语言来说 指针之所以重要 有如下的原因

+ *C语言底层的特点决定*
因为C语言比较底层 所以实现间接寻址是必须的 这可能是指针提出的初衷
+ *C语言讲究效率的特点决定*
C语言比较讲究高效 某些时候 使用指针确实能够提高效率 比如 在结构体作为函数参数的时候 传递一个指向这个结构体的指针要比直接传递这个结构体快的多
+ *指针可能是唯一的选择*
某些时候 指针可能是唯一的选择 一个经典的例子就是通过函数交换两个变量的值 由于C语言中函数调用的时候是传值的 所以指针可能是唯一的选择 还有就是内存管理 如果离开了指针是很难实现的 (插入一点 我以前也写过 指针本身并不难 难的是 指针往往和其他东西 比如内存管理 同时出现 导致很多人觉得指针很难 对指针的本质理解不深)

* 指针学习的误区

指针学习中存在的误区主要是对指针的神化 觉得指针是万能的 掌握了指针就掌握了C语言 用了指针就高效 这是错误的 很简单的例子是 一个冒泡排序 你把它变成用指针实现 效率还是很差 这是算法决定的 和指针这种寻址方式没有特别大的关系

* 对指针科学的认识

+ 不要神化指针 指针只是一种寻址方式
+ 指针学习要抓住本质和与其他寻址方式的区别
+ 该用指针的时候就用 不该用的时候 不用

最后一点需要解释一下 比如 a[i]和*p这两种形式 大部分时候对于编译出的二进制程序是没有影响的 就像上面说的 不是说你用了指针就高效 这种时候简单明了更重要 因为效率本来也没有区别

收到的鲜花
  • tlliqi2014-08-13 14:36 送鲜花  20朵   附言:没人回复 好伤心
搜索更多相关主题的帖子: 回答问题 Email C语言 
2014-08-12 12:13
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
没人回复 好伤心
2014-08-13 14:21
快速回复:【原创】指针的本质和指针学习存在的误区 欢迎大家批评指正
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014819 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved