只是有一个有趣的想法。在C#和Java之类的语言中,我知道在进行增量和减量时,您可以进行发布,也可以进行预增/减。像这样:

int a = 5;
Console.WriteLine(a++); // Would print out 5,
                        // And then increment a to 6

Console.WriteLine(++a); // Would then print out 7 because
                        // it increments a before printing it out

但是,我想知道是否有这样的事情可以做这样的事情:
int a = 5;
Console.WriteLine(a += 5); // Would print out 5,
                           // And then increment a to 10

Console.WriteLine(a =+ 5); // (Or something along those lines)
                           // To print out 15 at this point

只是很感兴趣,并不真正知道在哪里或如何寻找答案,所以想知道SO上是否有人会对此有所了解。谢谢!

编辑:在评论中添加了我的问题
a += 5a =+ 5到底在哪里定义?我从未见过使用第二个。它是否存在...?他们会编译成相同的东西吗?

最佳答案

在过去,C语言提供了此语法,作为在变量中添加或减去值的快捷方式。

 a =+ 5;
 b =- 5;

但是在C语言的早期,dmr(祝福内存)和ken弃用了该语法,而支持
 a += 5;
 b -= 5;

出于完全相同的目的,因为编写b=-5太容易了,这意味着它与b -= 5完全不同。这位“经验丰富”的程序员记得重写一堆代码以匹配新的语言规范。

因此,在这些构造中从来没有像a++--b中那样具有前递增或后递增语义。

09-04 11:59
查看更多