C(能否把一个指针变量赋值给一个整型变量?

例如int*p1,*p2;{intp;p=*p1... 例如int *p1,*p2; { int p; p=*p1 展开
 我来答
风若远去何人留
推荐于2017-11-14 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450131
专业C/C++软件开发

向TA提问 私信TA
展开全部
加强制转换下可以.
比如
p=(int)p1;
而不是像你那样的p=*p1; 这个是把指针指向的值赋值给p.
需要注意的是,对于32位及以下编译器, 这种赋值是无损的.

p=(int)p1;
p2=(int *)p;
这时访问*p2不会有问题.
当如果是64位,那么就可能会导致指针赋值给int时溢出, 数值被截断,从而出现数据丢失.
狸爱窝吧0110
2014-12-12 · 超过56用户采纳过TA的回答
知道答主
回答量:123
采纳率:100%
帮助的人:52.8万
展开全部
可以那样用,但是你的说法是错误的。 追问: 怎么说? 回答: p1是一个指针,*p1是指针只向的内存空间的变量的值,所以p=*p1;还是值 赋值 给值的问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式