| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2548 人关注过本帖, 1 人收藏
标题:基本概念的理解:指针和指针变量的区别,到底有木有,请大神指教
只看楼主 加入收藏
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
以下是引用赤血之魂在2013-3-17 16:36:12的发言:

想问问谭老师的“指针就是地址,”和Stephen Prata的“指针是一个其数值为地址的变量”的区别, 地址是不是一个变量呢?
不知道是不是我的语文有问题,如果真有问题请见谅
谭老师的     指针就是地址 ,结合前面说的指针是变量
SP   指针是一个其数值为地址的变量    去掉定语   : 指针是变量   
     其定语是指针是一个其数值为(是)地址   
两句话加起来不就是  指针是地址,指针是变量?  

仰望星空...........不忘初心!
2013-03-17 22:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
晕死,原来楼主没搞清楚变量、常变量、字面常量、不可修改的静态数据等等概念。

授人以渔,不授人以鱼。
2013-03-17 22:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
“地址是常量”,楼主这句话透露出理解的错误所在。指针记录的是某个对象(数据及对象、函数入口)等存储位置的一个“地址记忆器”。对象的地址不是总不会变的,它会随着程序的运行而变化,内容不变的是常变量(比如用const修饰过的变量,内容不变,不等于地址也不会变,特别是有垃圾回收机制的环境,对象挪了位置你也不知道),地址不变的是常指针(总是指向同一个地址,但这个地址放什么内容却可能会变)。所以,地址并不是常量。指针就是储存地址的变量——数据记忆器(为了避免误解特意不用“寄存器”字眼,但其实恰当的称呼是寄存器)。

授人以渔,不授人以鱼。
2013-03-17 23:08
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
回复 23楼 TonyDeng
大神勿怪, 还有一个问题, 既然地址不是常量, 那么地址是什么量呢?变量? 还是常变量?还是别的东西?在您的话语中可以看出您只是否认了地址是常量的说法,但并没有给出地址到底是什么(变量还是长变量)的说法,所以, 请您说明一下,地址到底是什么量?
前面已经可以确定的说, 指针是一个变量, 那么如果,地址是变量, 则可以确定两本书所说的东西是一致的;如果地址不是变量是不是可以说明两本书所说的东西有些许的矛盾呢?

让平淡诉说非凡!
2013-03-18 07:34
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
回复 21楼 Susake
两句话可以分别简化成:指针是地址。指针是变量。
现在我想问的是:地址是不是变量?
另外一个问题就是:指针和指针变量是不是一样的概念?
这就是我所纠结的问题。

让平淡诉说非凡!
2013-03-18 07:36
王捉熊
Rank: 2
等 级:论坛游民
帖 子:46
专家分:61
注 册:2012-10-23
收藏
得分:2 
虽然自己都不太清楚,但还是比较赞同七楼

新手上路,说错请勿见怪!
2013-03-18 10:10
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用赤血之魂在2013-3-17 16:33:42的发言:

希望指出出处。我想看一下文献资料,指出文献的名字即可,我自己去查一下
尽信书,则不如无书.

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2013-03-18 11:24
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用赤血之魂在2013-3-18 07:34:14的发言:

大神勿怪, 还有一个问题, 既然地址不是常量, 那么地址是什么量呢?变量? 还是常变量?还是别的东西?在您的话语中可以看出您只是否认了地址是常量的说法,但并没有给出地址到底是什么(变量还是长变量)的说法,所以, 请您说明一下,地址到底是什么量?
前面已经可以确定的说, 指针是一个变量, 那么如果,地址是变量, 则可以确定两本书所说的东西是一致的;如果地址不是变量是不是可以说明两本书所说的东西有些许的矛盾呢?
请明晰"地址"与"地址的值"的概念.
地址通常指内存条中某块内存单元的编号(或序号)
地址的值,就是某一编号
指针是一种数据类型,如同整数,浮点数.
指什变量,内存中某块内存单元里存储的数据(内容),这个内存单元的编号(或序号)就是这个指针变量的地址值



九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2013-03-18 11:40
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
地址通常指内存条中内存单元的编号(或序号)
////


应当这样说

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2013-03-18 11:48
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
以下是引用赤血之魂在2013-3-18 07:36:14的发言:

两句话可以分别简化成:指针是地址。指针是变量。
现在我想问的是:地址是不是变量?
另外一个问题就是:指针和指针变量是不是一样的概念?
这就是我所纠结的问题。
不是一回事.....
你跟着我说的理解下看看
1.指针是变量   : 已证明
2.数据由  地址 和 内容 构成:  
3.指针变量是int *p 中的   p    :这里不要理解错了
4.指针是地址
5.地址是内存一块连续的区域:正如数组m[5] = {1, 2, 3, 4, 5}.....类比一下
  数组是变量:   从首地址开始的    如果你认为m[1]是常量你就错了.....m[1]由:m[1]的地址和里面的值构成, 你首先找到m这个首地址,才能访问
  实际上你说的常量并不是m[1],而是m[1]中的值
在这么强行的说吧...常量是不变的量,变量可以变化,地址也可以变化......
综上所述...我想已经很清楚了....
当然这只是我的理解,若有BUG欢迎大家指正.........

仰望星空...........不忘初心!
2013-03-18 11:53
快速回复:基本概念的理解:指针和指针变量的区别,到底有木有,请大神指教
数据加载中...
 
   



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

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