| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 13587 人关注过本帖
标题:*p=&x和p=&x的区别
只看楼主 加入收藏
摩登程序猿
Rank: 1
来 自:梦的小镇
等 级:新手上路
帖 子:41
专家分:4
注 册:2013-7-23
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:10 
*p=&x和p=&x的区别
*p=&x和p=&x的区别,
搜索更多相关主题的帖子: 徐州 
2013-11-20 22:35
木棉田
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2013-11-20
收藏
得分:5 
如果x是变量,第二个是一级指针,第一个是二级指针,但我不确定能不能这样写

2013-11-20 23:05
飞羽络辰
Rank: 2
来 自:河南濮阳
等 级:论坛游民
帖 子:15
专家分:18
注 册:2013-11-19
收藏
得分:5 
*p=&x不能这样写,编译的时候有错误,&x表示x的地址,而*p表示的p指向的一个指针变量,二者不可这样赋值。

简单可依赖!!!
2013-11-20 23:12
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
*p=&x 如果不是出现在定义语句中,p是一个指向指针的指针,表示把x的地址赋值给p所指向的指针,它的定义如:int **p ;如果是在定义语句中,如:int *p=&x,p只是一个指向整形的指针。
p=&x 表示把x的地址赋值给指针p
2013-11-21 09:01
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:0 
声明和赋值同时进行用左式,
先声明后再赋值用右式。
不知是否是问这个?

www.qunxingw.wang
2013-11-21 12:15
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:10 
  &x 表示x的地址   而指针 p 本来就表示地址
所以 p=&x   那么输出 p 就是 x的地址
  *p 表示 p 所指向地址的内容,*p=&x 就是把 x 的地址存到了“内容”里   所以  输出 *p 也是 x的地址

三十年河东,三十年河西,莫欺少年穷!
2013-11-21 12:55
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
补充一句,
p 之前必须有所指向   (例如:p=&a;)
不然 *p 操作无法执行   因为 p 没有地址的话 就没有内容

三十年河东,三十年河西,莫欺少年穷!
2013-11-21 13:00
摩登程序猿
Rank: 1
来 自:梦的小镇
等 级:新手上路
帖 子:41
专家分:4
注 册:2013-7-23
收藏
得分:0 
回复 7楼 韶志
等我回家把原题粘上来,我还是有些不明白。原题好像*pk=&k,k=2, 最后执行时出现*pk时  我就想问到底是k的内容 还是k得地址。

菜鸟出蛋------多多指教.我希望我能在这论坛先坚持三年,那证明我没忘记我的梦
2013-11-21 13:34
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 8楼 摩登程序猿
你 k 前面加了取址符 &
当然是 k 的地址啦...

三十年河东,三十年河西,莫欺少年穷!
2013-11-21 13:38
摩登程序猿
Rank: 1
来 自:梦的小镇
等 级:新手上路
帖 子:41
专家分:4
注 册:2013-7-23
收藏
得分:0 
回复 9楼 韶志
#include<stdio.h>
main()
{int k=2,m=4,n=6,*pk=&k,*pm=&m,*p;
*(p=&n)=*pk*(*pm);
printf("%d\n",n);
}结果是8  其实我就想知道算*pk*(*pm)时是2*4,不是&k*&m。  有人说 int *pk=&k; 其实就是 int *pk, pk=&k;是不是这样

菜鸟出蛋------多多指教.我希望我能在这论坛先坚持三年,那证明我没忘记我的梦
2013-11-21 19:56
快速回复:*p=&x和p=&x的区别
数据加载中...
 
   



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

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