" + +"的含义运算符(不是++)

时间:2016-09-29 18:15:18

标签: c++

为什么这段代码甚至可以编译? " + +"是什么意思?操作

static void RollDice()
{
  Random dice = new Random();
  int sides = 6;
  int row = 1, col = 1;
  while (diceM[row, col] >= sides && sides <= 20)
  {
    for (int k = 1; k <=8; k++)
    {
      int ones = 0;
      for (int i = 1; i <= diceM[row, col]; i++)
      {
        int value = dice.Next(1, sides + 1);
        if (value == 1)
          ones++;
      }
      diceM[row + 1, col] = diceM[row, col] - ones;
      sides += 2;
      row++;
    }
  }
}

3 个答案:

答案 0 :(得分:7)

没有+ +运算符。有+运算符(以一元和二元形式出现)和一个++运算符,此处未使用。

其中每个都是二元+运算符,后跟一个或多个一元+运算符。

此:

c = c + + "d";

相当于

c = c + (+ "d");

此:

c = c + + + "d";

相当于:

c = c + (+ + "d");

或:

c = c + (+ (+ "d"));

等等。

答案 1 :(得分:2)

第一个+是二进制加号,用于计算c和第二个词的总和。

剩余的+是一元加运算符。在+ "d"中,"d"的类型为const char[2],并且会衰减到const char*。然后+应用于无效的指针,并返回相同的const char*

c + + + "d"相当于c + (+(+"d"))

答案 2 :(得分:1)

这只是很多一元的优点。

相关问题