努力追求可能 2021-11-23 17:53 采纳率: 66.7%
浏览 16

为何是3,两个 * 号有何不同??

int main(void){
struct node {
int a;
int b;
int C;
};
struct node s= { 3,5,6 };
struct node *pt= &s;
printf("%d",*(int*)pt);
}

img

  • 写回答

1条回答 默认 最新

  • zpba 2021-11-23 17:57
    关注

    (int)是把pt的类型强转成(int)型。
    前面的就是对这个地址取值,
    因为已经转成int
    型了, 所以取到的值就是pt里面的第一个地址里面的int的值3

    评论

报告相同问题?

问题事件

  • 创建了问题 11月23日

悬赏问题

  • ¥15 matlab无法读取mat文件,如何解决?
  • ¥15 51单片机读写24C02
  • ¥50 grlb复位怎么能够不回调?也不卡在home状态?
  • ¥15 win系统下做一个开机自动最大化运行某应用程序的执行文件
  • ¥15 grlb复位,设置设置返回行程为0,卡在home状态,怎么解决?
  • ¥100 CubeIDE更换芯片以及调整代码
  • ¥50 有没有可以远程指导问题
  • ¥15 origin柱状图,分组如何分
  • ¥15 两个不同IP互通的配置命令
  • ¥15 office弹窗激活问题