【发布时间】:2023-03-03 04:44:02
【问题描述】:
在使用++ 运算符时,我尝试编写以下内容:
++i++;
一开始我希望它可以编译,但我得到了一个编译器错误:
递增或递减运算符的操作数必须是变量, 属性或索引器。
然后我尝试写 ++(i++) 来帮助编译器理解我的意思,但它也(不出所料)不起作用。
所以我想知道++ 运算符返回什么?由于编译器错误,我期望++i 不会返回代表i 值递增的int,但事实并非如此,因为我可以成功地执行i = (++i) + 1...
有人知道为什么++ 运算符不能被链接吗?
另外,(++i).GetType() 确实返回 System.Int32。
【问题讨论】:
-
你应该研究一下 C++ 运算符重载,也许它会解决问题stackoverflow.com/questions/4421706/operator-overloading
-
只是好奇,(++i)++ 编译吗?我面前没有VS,所以无法查。
-
不,它没有。因为
++i返回递增的i的值,而不是变量本身。 (根据我刚刚学到的:P) -
++i++;没有任何意义,因此不应编译。把你的猫从键盘上移开,然后继续。