MockerOvO 2022-01-26 22:19 采纳率: 89.9%
浏览 43
已结题

为啥D的结果是答案,其余3个选项的结果是什么,请请教

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img

  • 写回答

3条回答 默认 最新

  • 慕雪华年 C/C++领域新星创作者 2022-01-26 22:32
    关注

    首先,ptr指针指向的是结构体数组a中的第二个元素,也就是定义的第二个结构体2,&a[2]
    还是优先级的问题,D选项先是->找到了i1元素2,然后进行前置++,2就变成了3。

    struct s 
    {
        int i1;
        struct s* i2;
    };
    static struct s a[3] = { 1,&a[1],2,&a[2],3,&a[0] }, * ptr;
    
    int main()
    {
        ptr = &a[1];
        //int a = ptr->i1++;//2,先找到了2赋值给a后,i1才++
        //int a = ptr++->i1;//2,找到了2赋值给a后,指针++指向了下一个
        //int a = *ptr->i1;//错误,无法对int类型解引用
        int a = ++ptr->i1;//3
        printf("%d\n", a);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月4日
  • 已采纳回答 1月27日
  • 创建了问题 1月26日

悬赏问题

  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错
  • ¥15 拓扑学,凸集,紧集。。
  • ¥15 如何扩大AIS数据容量
  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助