C语言中指针(*)方面的详细讲解(在线等待讲解)

看的是谭浩强的书前面都还能理解看到指针*地址&就看不懂了寻求帮助... 看的是谭浩强的书 前面都还能理解 看到指针*地址&就看不懂了 寻求帮助 展开
 我来答
day9981
2007-11-11 · TA获得超过1816个赞
知道小有建树答主
回答量:345
采纳率:0%
帮助的人:0
展开全部
楼主,其实,C语言里面只有变量和常量,根本没有什么指针,指针也是变量。变量是一个“名化”(就是有名字)的存储空间。一个变量具有二重属性,一是值,二是地址(物理地址,就是内存中的位置)。变量名与值绑定在一起,通过变量名我们可以访问存放在它所代表的这个存储空间里的值,可以把新的值放进它所代表的这个存储空间(同时原来的值被覆盖掉)。而变量的另外一个属性,地址,则是隐性的。C语言里面我们需要在变量名前面使用取地址运算符&来获取。比如说:
int a, b;声明了一个变量,我们可以写a = 3(把3放进a所代表的存储空间里面),我们可以写b = a + 2;我们把a里面的值取出来加2后得到的值5放进b所代表的存储空间里面。如果我们想知道a所代表的存储空间到底在内存中的什么位置,那我们可以写 &a,这个时候&a就把a所代表的内存空间的位置,就是变量a的地址取出来了。由于内存里面每一个单元的地址是用正整数来标记的(就像座位编码1,2,3...号一样),所以地址也可以被当作值(正整数不就是值吗?)来看待,不妨假设&a=1024,既然地址是值,那我们就可以把它存到另外一个存储空间里面,我们写int * p = &a;正是此意。

楼主,你不妨记住我在这儿给你说的每一句话,尤其是开头的那两句,现在不明白不要紧,时候到了你自然会明白,到那时候你就知道此乃金玉良言!
匿名用户
2007-11-11
展开全部
具体一些,总不能在这里把指针的所有知识都讲一次吧?!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冼书双38
2007-11-11
知道答主
回答量:42
采纳率:0%
帮助的人:14.7万
展开全部
int a,*p
a=5;
*p=a %把a的地址赋给p
p就等于&a即a的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rightmin
2007-11-11 · TA获得超过4124个赞
知道大有可为答主
回答量:2199
采纳率:0%
帮助的人:1804万
展开全部
这个简单,首先你要明白,每一块内存都是有一个对应的地址编码的。你需要这么理解。
在内存里面除了存数据外,还会存内存的地址。比如 我们定义:int a=1;那么要开辟两个内存块:一个是存当整数1的,还有一个就是存放这个1的地址的。而指针就是地址。“*”其实有两种含义,一个定义的时候用,比如
int *p,这个的意思是标识这个P是一个指针。*p++里面的*是表示取p这个变量里保存的地址里面的数据。&是表示取变量的地址。不要把指针想的多难,你只要简单地知道内存是有地址编号的,而内存既能数据,也能存地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式