| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2548 人关注过本帖, 1 人收藏
标题:基本概念的理解:指针和指针变量的区别,到底有木有,请大神指教
取消只看楼主 加入收藏
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
结帖率:55.56%
收藏(1)
已结贴  问题点数:20 回复次数:9 
基本概念的理解:指针和指针变量的区别,到底有木有,请大神指教
这里抛出问题,希望有大神能够以示例说话,标出出处。

我在这里引出一下问题:
指针和指针变量是一样的东西吗? 如果指针和指针变量不同, 那么, 他们不同在何处呢?

为了研究此问题, 我找来了三本书分别是C语言的经典著作谭浩强老师的《C程序设计第四版》,Kenneth A.Reek的《C 和指针》以及Stephen Prata的《C Primer Plus(第五版)中文版》以及对应的英文版。

在谭老师的书上有这样的字眼 第289页“首先要准确地弄清指针的含义。指针就是地址,”此句是用粗黑体强调的。此句的含义是,指针是地址,而地址是常量。那么指针就是一个常量。在下一段中有这样的一句话:“地址就是地址,本身就是一个值。”更加强调了指针就是一个常量的说法。指针变量呢?在谭老师的书中,指针变量就是盛放指针的变量,即盛放地址的变量。同样是289页上面的第二段就是说明的这一问题。

在《C Primer Plus(第五版)中文版》中第236页中9.7 指针简介 里面有这样一句话“一般来讲,指针是一个其数值为地址的变量(或更一般地说是一个数据对象)。”那么此句的含义是指针是一个变量。
为了防止是由于翻译出错导致理解失误, 我专门弄来了C Primer Plus的英文版。
图片附件: 游客没有浏览图片的权限,请 登录注册
原文“Pointers? What are they? Basically, a pointer is a variable (or, more generally, a data object) whose value is a memory address. Just as a char variable has a character as a value and an int variable has an integer as a value, the pointer variable has an address as a value. Pointers have many uses in C; in this chapter, you'll see how and why they are used as function parameters.”这里的翻译应该没有什么问题。

就上面的两本书来说,谭老师的看法是:指针非变量,指针是地址,指针变量是盛放指针的变量,也就是说, 指针变量是盛放地址的变量。很明显,指针不同于指针变量,他们的关系是,指针变量是盛放指针的变量。
Stephen Prata先生则认为:指针就是变量,而,指针变量等价于指针,这样的指针所盛放的值才是地址。

在《C和指针》当中并没有深深的阐释“指针”以及“指针变量”的区别。

现在,我对上面的两本IT著作的说法并没有搞清楚,不知道它们为什么如此矛盾, 也可能是我理解有误,但是, 我很想知道权威的说法是什么。很想知道原汁原味的概念,可能大神们会认为在下是在咬小字眼, 可是咱们搞研究的怎能不咬一下小字眼呢? 该理解的概念一定要理解的清楚一些。这样才对得起“学习”二字。

编程论坛是一个很权威,很有档次的论坛,在这里发言的人们都是很有档次,很有素质的。 我希望大家能在帖子上说出一点有意义的东西,不要在帖子中恶意灌水,谢谢您的理解。

[ 本帖最后由 赤血之魂 于 2013-3-17 14:41 编辑 ]
搜索更多相关主题的帖子: 英文版 Stephen C程序设计 
2013-03-17 14:39
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
回复 2楼 TonyDeng
请问一下:指针变量和指针有什么区别吗?

让平淡诉说非凡!
2013-03-17 16:29
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
回复 5楼 waja
那么谭老师的《C程序设计第四版》上面的说法如何解释呢?

让平淡诉说非凡!
2013-03-17 16:31
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
回复 6楼 Susake
请先说明一下什么是指针, 什么又是指针变量呢?

让平淡诉说非凡!
2013-03-17 16:32
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
回复 7楼 Knocker
希望指出出处。我想看一下文献资料,指出文献的名字即可,我自己去查一下

让平淡诉说非凡!
2013-03-17 16:33
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
想问问谭老师的“指针就是地址,”和Stephen Prata的“指针是一个其数值为地址的变量”的区别, 地址是不是一个变量呢?

让平淡诉说非凡!
2013-03-17 16:36
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
回复 19楼 Susake
一个强调的是常量, 一个强调的是变量,不一样吧

让平淡诉说非凡!
2013-03-17 22:30
赤血之魂
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
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
非常非常非常非常感谢大家们的精彩回答, 我好像已经懂了很多, 感谢网友们!谢谢!!

让平淡诉说非凡!
2013-03-20 12:03
快速回复:基本概念的理解:指针和指针变量的区别,到底有木有,请大神指教
数据加载中...
 
   



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

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