【问题标题】:In c++, what does an increment to a 2D array? Whats the function assert(0) doing? [closed]在 C++ 中,二维数组的增量是什么?函数 assert(0) 在做什么? [关闭]
【发布时间】:2017-04-26 19:38:10
【问题描述】:

我正在编写 C++ 代码,但我不确定 a[set][i]++; 的作用。我假设该数组中的值增加了 1,但我不确定。
另外,代码中assert(0);的作用是什么? 感谢您的帮助!

代码块是:

for (i=0; i<1S; i++)
{
   if (a[637][i] < a[637][15]) 
       {
          a[637][i]++;
          if (a[637][i] == 15)
             assert(0);
       }
    }
a[637][15] = 0; 

编辑: 对不起,我忘了提及背景。
a 的定义是 uint32_t a[2048][16];so 637 和 i 是来自特定循环的值,以便将它们与另一个二维数组进行比较,然后选择要驱逐的行。这是针对缓存替换策略的,但我只是对这些情况感到好奇。谢谢!

【问题讨论】:

  • 我建议解雇写这篇文章的人。
  • Assert 用于评估方程式并在失败时中止有或没有消息。 msdn.microsoft.com/en-us/library/9sb57dw4.aspx.
  • assert(0)assert(false) 相同,这意味着程序(处于调试模式)将在到达该语句时停止。所以它的意思是“这不应该发生”:
  • @Caribou 不,它不会停止编译。它在运行时中止程序。
  • 请注意,您可以将该特定语句重写为assert(a[637][i] != 15);

标签: c++ arrays multidimensional-array assert


【解决方案1】:

语句a[637][i]++增加二维数组a的单元格637/i的值。

assert(0) 在此时简单地中止程序执行(因为条件0 表示false,定义断言永远不会满足)。授予这个 SO answer获取更详细的解释。

【讨论】:

    猜你喜欢
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多