设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2643|回复: 8
打印 上一主题 下一主题

[胡扯] C++中不为人知的运算符

[复制链接]

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

跳转到指定楼层
1
发表于 2015-1-17 19:39:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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,看来这个功能还是挺不错的。

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-1-17 19:44:56 | 只看该作者
敢不敢不要少打分号

点评

已改  发表于 2015-1-17 19:47
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
发表于 2015-1-17 19:50:22 | 只看该作者
每次减少给定x的10%?

点评

x=10的时候输出9,8,7,6,5,4,3,2,1,0···是减少了给定x的10%啊0.0难道这个不是这么酸的···  发表于 2015-1-17 20:34
肯定不是  发表于 2015-1-17 20:20
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
200 小时
注册时间
2014-7-17
帖子
410
4
发表于 2015-1-17 20:21:02 | 只看该作者
意思大概是每次取前趋,直到等于?

点评

请注意一下此帖的标签为【胡扯】  发表于 2015-1-17 20:42

知其然,而不欲知其所以然,耻也!
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
发表于 2015-1-17 20:38:12 | 只看该作者
羁绊的守望者 发表于 2015-1-17 20:21
意思大概是每次取前趋,直到等于?

嗯。

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

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

和 for (int x = 10; x; --x) 没什么区别

点评

好吧。被兰触的 duffs device 整过一遍之后我还把这贴当真了- -  发表于 2015-1-18 07:39
while(x-- > 0)  发表于 2015-1-17 20:43
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
89 小时
注册时间
2010-11-19
帖子
17
6
发表于 2015-1-18 05:43:38 | 只看该作者
while ( (x--) >0)
之前见过,不知道谁这么无聊。。

评分

参与人数 1星屑 +60 收起 理由
RyanBern + 60 本楼中第一个发现这个梗

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1759
在线时间
2524 小时
注册时间
2010-10-12
帖子
1454

开拓者

7
发表于 2015-1-19 03:23:07 | 只看该作者
本帖最后由 刺夜之枪 于 2015-1-18 14:27 编辑

<del>ruby有么,或者java有么</del>
吔屎啦!居然是坑!

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

8
发表于 2015-1-19 09:17:30 | 只看该作者
趋近于这个是不是要追加步长啊?

点评

步长只能是1,而且只能往前趋近,不能向后。话说这是一个梗啊,都没看出来么……  发表于 2015-1-19 10:18
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
124
在线时间
276 小时
注册时间
2008-5-28
帖子
120
9
发表于 2015-1-19 13:14:15 | 只看该作者
-->不是一个运算符。
while(x-->0)中的表达式x-->0的意思是:
x--表示自减,即x=x-1。x--这一表达式的的值为x自减之前的值。
所以while(x-->0)的意思是:
while(x>0)
    x--;
只是把两条语句合写为一条而已,不是什么新加的运算符,C语言也可以写。

评分

参与人数 1星屑 +60 收起 理由
RyanBern + 60 发现此梗的奖励!

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-10-3 19:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表