Project1

标题: C++中不为人知的运算符 [打印本页]

作者: RyanBern    时间: 2015-1-17 19:39
标题: C++中不为人知的运算符
本帖最后由 RyanBern 于 2015-1-18 09:25 编辑

先声明,以下内容非原创,我只是来搬砖的。

大家对编程语言中的运算符想必已经非常熟悉了,但是由于语言标准是不断更新的,所以一些比较方便的功能会不断地加入进来。大家可能还不知道,最近C++为了能吸引更多数学专业的人来使用它(而不是用MATLAB等软件),特地把一系列数学符号加入到运算符当中。
这其中就有一个符号叫作“趋近于”,在C++中写作'-->'(不用'->'符号的原因是因为这个符号已经有了含义)。比方说你要让变量x趋近于0,你就可以直接用这个符号表示这一过程了。
如果你不相信的话,可以拿你的C++试试下面的代码:
CPP 代码复制
  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4.     int x = 10;
  5.     while(x --> 0) // 令x趋近于0,依次输出x
  6.         cout << x << endl;
  7.     return 0;
  8. }

然后你就会发现控制台依次输出了9,8,7,6,5,4,3,2,1,0,看来这个功能还是挺不错的。

作者: taroxd    时间: 2015-1-17 19:44
敢不敢不要少打分号
作者: chd114    时间: 2015-1-17 19:50
每次减少给定x的10%?
作者: 羁绊的守望者    时间: 2015-1-17 20:21
意思大概是每次取前趋,直到等于?
作者: taroxd    时间: 2015-1-17 20:38
羁绊的守望者 发表于 2015-1-17 20:21
意思大概是每次取前趋,直到等于?

嗯。

而且似乎只能往前不能往后。

我看了一下汇编,貌似就是每次 dec ,比较之后 jg 的样子

和 for (int x = 10; x; --x) 没什么区别
作者: hyno111    时间: 2015-1-18 05:43
while ( (x--) >0)
之前见过,不知道谁这么无聊。。
作者: 刺夜之枪    时间: 2015-1-19 03:23
本帖最后由 刺夜之枪 于 2015-1-18 14:27 编辑

<del>ruby有么,或者java有么</del>
吔屎啦!居然是坑!
作者: 精灵使者    时间: 2015-1-19 09:17
趋近于这个是不是要追加步长啊?
作者: 黑衣客    时间: 2015-1-19 13:14
-->不是一个运算符。
while(x-->0)中的表达式x-->0的意思是:
x--表示自减,即x=x-1。x--这一表达式的的值为x自减之前的值。
所以while(x-->0)的意思是:
while(x>0)
    x--;
只是把两条语句合写为一条而已,不是什么新加的运算符,C语言也可以写。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1