机长与茶 2023-01-20 14:45 采纳率: 100%
浏览 26
已结题

指针对比的结果无法用auto或bool存下来,但可以用于if条件判断,如何解决?

有如下代码:
对比两个指针,编译报错,结果无法用auto或bool存下来,但可以用于if条件判断。


    int a[] = {1,2,4};

    int* p1 = a;
    int* p2 = a + 1;

    auto b = (p2 > p1); // error C2040: 'b': 'auto' differs in levels of indirection from 'int [3]'

    if (p2 > p1) // correct
    {
        // do something
    }

按我理解,指针的对比结果应当也是bool(不管逻辑上是否有意义,这里只讨论语法)。请广大网友帮忙解答,感激不尽。

  • 写回答

2条回答 默认 最新

  • 元气少女缘结神 2023-01-20 15:56
    关注

    auto b = (p2 > p1); 这里有点不伦不类,这里只是一个括号(),并不是判断语句,标准的判断是(a>b )?true :false
    你将括号() 写在if后面当然不报错,因为那就是判断语句。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月30日
  • 已采纳回答 1月22日
  • 创建了问题 1月20日

悬赏问题

  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵