为了账号安全,请及时绑定邮箱和手机立即绑定

将&shape强制转换为int指针类型?

int *p=(int *)&shape

&shape为shape的地址,本身不就是Int类型的吗?

将&shape强制转换为int指针类型?


正在回答

3 回答

指针类型和所取的地址储存对象类型要一样,否则指针类型太大指的范围超过了对象的范围,无法确定内容,若太小又取不全

0 回复 有任何疑惑可以回复我~
#1

sodo0 提问者

也就是说前后的int可以换成其他类型,比如string,double等,因为是强制转换,前后的类型大小肯定是一致的。
2017-03-30 回复 有任何疑惑可以回复我~
#2

juhhjj 回复 sodo0 提问者

对,因为这块&shape取地址是要取这个变量的整体的首地址,他代表的地址类型实际时其储存的内容类型,并不是所谓的int型的,所以强制转化
2017-04-05 回复 有任何疑惑可以回复我~

int p=(int)&shape   

p就是储存一个数值,由于需要用p操作shape中的数据成员,所以需要用指针

就变成

int *p=(int *)&shape

这样p就指向shape,p++之后指向第二个数据成员

0 回复 有任何疑惑可以回复我~

不同类型的变量地址用不同的指针进行保存, 比如char类型地址使用char*,int型地址,用int*保存

0 回复 有任何疑惑可以回复我~
#1

sodo0 提问者

我叫lixinhai
2017-03-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66211    人
  • 解答问题       334    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

将&shape强制转换为int指针类型?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号