Re: [问题] 自己练习运用基础的指标小问题

楼主: M013020058 (帅翰)   2015-08-05 00:49:33
※ 引述《Feis (坐吃山空)》之铭言:
: 推 M013020058: 想问,指标可以运用的地方是?目前只知道抓变量的位置 08/04 19:02
: 这问题有点广,我试着整理看看。
: 指标本质上就只是存放一个内存位址。
: 所以问题就回到为什么需要知道内存的位址。
: 很显然地,其实我们大部分的情况都不在乎这个位址,而是在乎这个位址所存放的资料。
: 存放位址只是为了间接完成某些不用指标无法完成的目的。
: 所以看到指标的使用,要思考的是它的目的是什么。
: 如果他没有任何特殊的目的,那肯定就是不该用指标。
: 因为在 C 跟 C++ 中有些使用选择上的不同,不过下面我就全部混在一起讲:
: (注: 下面的物件不专指 C++ 里的物件)
: 1. 在 C 实现参考语意: 想将某个物件作为引数传入函式,而该函式内部可以修改到原
: 本物件的内容。
: 2. 动态配置: 物件的大小会动态改变或者想让物件的生命周期不受可视范围限制
: 3. 提升呼叫函式的效率: 在 C 或早期的 C++,引数会在函式内被复制一份。如果引数
: 是复制成本比较高的类型 (例如阵列、大型结构),则传递
: 位址可以减少复制成本。
: 4. 多型: 不论是 C 的 void * 或是 C++ 里的多型,我们可以用一个指标指向不一样类
: 型的物件。
: 5. 加速编译: 宣告指标的时候,所指向的类别/结构只需要先被宣告而不需要先被定
: 义。使用这个技术可以让我们在修改定义的时候,不需要重新编译只使用
: 指标而没真正存取内容的部分。
: 6. 将不同名称的东西放在同一个阵列里: 利用指标可以将不同名称的东西也都可放在
: 同一个阵列。例如常见的函式指标阵列。
: 7. 可以表示选择性的值: null pointer 算是少数可以明确代表 "没有" 概念的东西。
: 8. 在函式间传递函式: 函式本身无法复制却可取址。所以要传递至函式中,在 C 需要使
: 用指标。
: 其他我想到再补 Orz..
非常感谢先进的分析
目前初学者小弟我为指标分类为下,并提出几个疑惑的地方。
1, 很多书籍都透过变量位址来修改/定义变量资料,但今天不是直接修改/定义变量资料
就好?为什么要绕一圈?
2,同上,是否是为了读写档案所建立指标功能?
3,以矩阵为例,可用指标来取代矩阵。而两种在内存上或其他地方哪里不一样?
4, 最后,指标能有一般变量没有的“动态”功能,所以才需要指标?
在指标上的学习,小弟我一直在想这几个问题?为何需要指标?每本书籍都把指标列为程
式码重要的地方,无法理解~~~~~
烦请先进们为小弟解惑
谢谢:)
作者: stupid0319 (征女友)   2015-08-05 00:59:00
写程式要有内存概念呀,等你写到眼睛脱窗就会想通了
作者: xjpjeass (人人)   2015-08-05 01:04:00
指标像是箱子上的标签,箱子就是位址,比如说地上摆了一整排的箱子,里面依序摆了许多东西,里面的东西可以换,可是箱子可以一直留着不动,方便里面来来去去的资料替换,这是一种动态的概念(请问这样解释对吗....)
作者: stupid0319 (征女友)   2015-08-05 01:23:00
别想太多,指标也是变量的一种啊啊...跟int一样指标拿来做运算也是OK的
作者: LPH66 (-6.2598534e+18f)   2015-08-05 01:27:00
1.有些时候那些"变量"是没有名字, 只能靠指标来存取的eg. 动态分配来的空间3.简答:阵列可以跳一列, 指标不能; 两者在一些细节上也有差另外楼上, 对初学者不要讲指标运算...那是个危险的坑
作者: xjpjeass (人人)   2015-08-05 08:38:00
楼上,那个坑是不是就是我跳的阿....这篇的同标题原文,就是我用指标运算,可是好像弄错了
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-08-05 10:00:00
进去学就会理解了 不学永远也不会理解 思而不学则DIE
作者: stupid0319 (征女友)   2015-08-05 10:39:00
指标用的好,要饭要到老
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-08-05 11:55:00
楼上是要到多老了

Links booklink

Contact Us: admin [ a t ] ucptt.com