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

请问((Pconninfo)buf)->come的值代表什么?

请问((Pconninfo)buf)->come的值代表什么?

C
达令说 2022-07-12 15:10:59
typedef struct conninfo{int go;int come;char a;} *Pconninfo;int main(int argc, char* argv[]){char buf[10]="123456789";int nTest=((Pconninfo)buf)->come;printf("%d",nTest);return 0;}
查看完整描述

3 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

Pconninfo是指针指向的是地址
struct内的数据是顺序存储的,
go完了是come然后a
buf里的数据也是顺序存储的
Pconninfo)buf强制转换,但指针指的还是那个地址
也就是说你算下地址,就应该知道了。

查看完整回答
反对 回复 2022-07-18
?
慕慕森

TA贡献1856条经验 获得超17个赞

(Pconninfo)buf是强制类型转换。把从数组buf的首地址开始的一段内存强制转换成Pconninfo类型,
因为在前面使用了typedef ,实际上强制转换成的数据类型是 struct conninfo的指针。
在使用指针输出指针指向的结构体的私有变量时一般用(dd)->xx.的形式。
所以((Pconninfo)buf)->come的值最后代表的是经过强制类型转换后的123456789的内存空间转换成struct conninfo后所对应的come成员的值。
最后结果不确定,因为你并不知道具体是如何编码的。比较麻烦

查看完整回答
反对 回复 2022-07-18
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

就是指向结构体里面的come的值

查看完整回答
反对 回复 2022-07-18
  • 3 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信