| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2548 人关注过本帖, 1 人收藏
标题:基本概念的理解:指针和指针变量的区别,到底有木有,请大神指教
只看楼主 加入收藏
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
地址不是什么常量变量,如同你家楼下的信报箱;
信报箱通常是一种多门结构正方形箱体,每一个门上有编号,这编号是有特殊意义的(表明里面装的信报是谁家的);
内存条就象一种多门结构正方形箱体,门上有编号就是"地址的值",你可以赋予它特殊的意义,"1-101"装int a ,"2-304"装int *p ........
&a就是1-101了,&p 就是2-304了,至于 1-101,2-304里面是报刊还是信或者是其它什么的  由就是 Tmp=a ,Tmp=*p

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2013-03-18 12:01
linjxwell
Rank: 2
等 级:论坛游民
帖 子:12
专家分:40
注 册:2013-3-14
收藏
得分:2 
变量:放东西的地方
指针/地址:一个数字

0地址:
(void *)0,把0变为指针/地址
*(void *)0,访问0地址的内容,会死程序的哦

[ 本帖最后由 linjxwell 于 2013-3-18 12:06 编辑 ]
2013-03-18 12:03
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
地址  =  信报箱;
地址值 = 信报箱编号;

然后我规定 信报箱编号为1-100 小门(int *p)里只能装一种东西,就是"信报箱的编号"(地址值),那么,这个信报箱编号为1-100 小箱就是指针变量(注意是:编号为1-100 小箱),然后我把编号为1-100 小箱装进一个编号: 1-101;

最后我规定信报箱编号为1-101 小门(int a)里只能装一种东西,就是整数;我在1-101小箱子()里装进一个int数据:99999,则

&a => 1-101
&p => 1-100
*p => 99999


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2013-03-18 12:15
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
实际上很多时候书上用"指针"这个词时是特指"某一类型的指针变量"

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2013-03-18 12:19
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
地址  =  信报箱;
地址值 = 信报箱编号;
//////
内存条  = 信报箱;
地址  = 信报箱编号;
某一地址值 = 某一信报箱编号;

这样更形象一点

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2013-03-18 12:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
老K的解释不错

授人以渔,不授人以鱼。
2013-03-18 21:52
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:2 
以下是引用TonyDeng在2013-3-17 14:48:09的发言:

指针是一个变量,它的值就是所指向的对象的内存地址。不要以为指针不是变量,它也是变量,要占用一个变量(通常是int型的尺寸)的内存。所谓通过指针寻访数据,是计算机先读出指针的值,然后根据这个值再转移到指定内存处读出那里的数据,这是一种间接寻访手段。上面所有资料的说法是一致的。
楼主正解,另外你看看这个:int *p;    int **p;弄懂你就明白了

Maybe
2013-03-18 22:11
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:2 
首先你不要记指针,把它全理解为内存的对应地址,而指针变量就是专门存地址的变量。

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2013-03-19 00:07
奔跑的萝卜
Rank: 2
等 级:论坛游民
帖 子:43
专家分:55
注 册:2013-3-18
收藏
得分:2 
指针本身就是个地址变量。它可以是常量的地址,变量的地址,函数的地址,数组的地址,指针的地址。
2013-03-19 12:12
赤血之魂
Rank: 2
等 级:论坛游民
帖 子:109
专家分:86
注 册:2012-3-22
收藏
得分:0 
非常非常非常非常感谢大家们的精彩回答, 我好像已经懂了很多, 感谢网友们!谢谢!!

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



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

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