在某乎看到有人说C语言有个非常鲜为人知的运算符--趋向于运算符

差不多就是下面这样:

#include<stdio.h>int main(void)
{int conut = 10;while (conut --> 0) //注意这里是两个短横线, 并非指针型的成员操作符{printf("conut = %d\n", conut);}return 0;
}

输出:

conut = 9
conut = 8
conut = 7
conut = 6
conut = 5
conut = 4
conut = 3
conut = 2
conut = 1
conut = 0

初看感觉没毛病, 但是这东西也经不起推敲, 下面我详细说明下:


#include<stdio.h>int main(void)
{int conut = 10;printf("return: %d", conut --> 0);return 0;
}

输出:

return: 1

其实从这里我们就可以看出, 所谓的"趋向于运算符", 不过是先把conut和0相比较, 再将conut自减1罢了

所以, 站在编译器的角度看, 那行代码其实是这样子的:

while (conut-- > 0)//为方便对比, 便再次贴出原代码
while (conut --> 0) //此处自减运算符和操作数之间的空格没有影响

其他的变体, 例如说: conut ++< 20, 0 <-- conut, conut ----> 0 等等, 都是类似的套路

补充证据:

下图是一个关于C语言运算符优先级的表格:

        这里也可以看到, 图中并没有所谓的"趋向于运算符"


总结:

    C语言中并不存在"趋向于运算符", 它只不过是其他运算符'拼'出来的


参考: 

    https://www.zhihu.com/question/27417946   

    https://ruphi.cn/archives/11/

    https://fishc.com.cn/forum.php?mod=viewthread&tid=67664

    感谢上面的大佬. 如有错误纰漏, 欢迎指出, 感谢不尽

C语言真的存在趋向于运算符吗?相关推荐

  1. 真的存在趋向于运算符 --> 吗?

    今天看到了下边的这段代码: #include <stdio.h>int main(){int x=10;while(x --> 0){printf("%d ",x ...

  2. C/C++ 趋向于运算符的恶作剧

    前阵看到一个帖子,说c语言有一个鲜为人知的运算符叫做"趋向于",写作"-->",还给出了源码: #include <stdio.h> int ...

  3. 趋向于运算符-->骗局

    看到网上有人说c语言有–>趋向于这个运算符,通过程序的结果判断,纯属骗局. 原因:如果有趋向于运算符,那么正常情况下应该会打印两行,一行是9876543210一行是12345678910,实际情 ...

  4. sizeof是c语言的一种运算符,C语言位运算和sizeof运算符详解

    位运算和sizeof运算符 C语言中提供了一些运算符可以直接操作整数的位,称为位运算,因此位运算中的操作数都必须是整型的.位运算的效率是比较高的,而且位运算运用好的话会达到意想不到的效果.位运算主要有 ...

  5. python语言有哪些类型的运算符_python(4)-变量 数据类型和运算符

    第二章:变量.数据类型.运算符 思考:怎么理解变量和内存? 变量:就等同于上面图中的age name hobby 内存:存储位置里所装的内容 18 张三 打球 变量一定是存在某个地址,可以从变量名找到 ...

  6. c语音异或运算符_C语言中的按位异或运算符有什么用处?

    原标题:C语言中的按位异或运算符有什么用处? 想知道C语言中的按位异.运算符有什么用处,首先C语言中^为按位异或运算符,若两个二进制位相同,则结果为0,不同为1 例: #include "s ...

  7. C语言自加自减运算符(++i / i++) - C语言零基础入门教程

    目录 一.C 语言自加++ / 自减 – 运算符简介 1.前 ++ 后 ++ 的区别 2.前–后-- 的区别 二.C 语言自加++/自减–运算符实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...

  8. python位运算符_详细介绍Python语言中的按位运算符

    按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 按位与 ( bitwise and of x and y ) & 举例: 5&3 = 1 解释: 101 ...

  9. c语言表达式10 3的结果是,C语言程序设计--第3讲运算符与表达式.ppt

    C语言程序设计--第3讲运算符与表达式资料 §3.10 逗号运算符和逗号表达式 逗号表达式的一般形式可以扩展为 表达式1,表达式2,表达式3,--,表达式n 它的值为表达式n的值. 逗号运算符是所有运 ...

最新文章

  1. 家用笔记本电脑什么牌子好_家用直饮水机什么牌子好 家用直饮水机品牌排名...
  2. 计算机及相关设备制造业2020,在现实生活中,接近完全垄断市场类型的行业包括()。A.计算机及相关设备制造业B.稀有...
  3. 重构指南 - 引入参数对象(Introduce Parameter Object)
  4. jdbc驱动程序_JDBC操作数据库的步骤
  5. php实现ssh客户端,php无阻塞SSH客户端实例
  6. vector与list的接口介绍与如何使用以及区别,附代码。
  7. virtual box一直正在加载文件_如何用Band-in-a-box进行民乐编曲
  8. bootstrapValidator验证失败问题
  9. UnicodeEncodeError: #39;ascii#39; codec can#39;t encode character u#39;\u5929#39; in position 2...
  10. c语言程序改错:求两个整数的最小公倍数,【C语言】求两个整数的最大公约数、最小公倍数...
  11. webbrowser在vb中叫
  12. Android 7.0(API 24)以上调用系统安装包问题
  13. 基于Arduino的循迹小车
  14. Could not read JSON: Cannot construct instance of `java.util.ArrayList$SubList`Redis反序列化异常
  15. 风控模型——评分卡模型
  16. android为什么会用流量,手机流量为什么会偷跑?
  17. 技术人攻略访谈四十-刘睿民:数据库战国时代,我不跟你们玩政治!
  18. 宝付国际手把手教你如何成为亚马逊卖家
  19. Controllable Generation from Pre-trained Language Models via Inverse Prompting翻译
  20. 色彩模式-RGB、HSV、CMYK、灰度模式、位图模式......

热门文章

  1. 华为scp快充协议详解_连华为SCP快充都支持 台电双口充电头测试
  2. 未知的information,已知的technology-写给未来的思维范式
  3. 猎豹浏览器关掉图片显示
  4. java构造器(默认构造方法、参数化构造方法)
  5. 开源 java CMS - FreeCMS2.8 栏目管理
  6. Jmeter对基于websocket协议的压力测试
  7. 【新华三】网络工程师 H3C设备-如何配置单臂路由,实现不同网段通信?来来来~轻松掌握单臂路由技术原理!
  8. 音频文件格式怎么转换html,mp3格式转换 如何转换音频文件|手机录音转换mp3格式...
  9. 如何计算机床水箱大小,缓冲水箱容积大小如何确定?缓冲水箱容积如何估算?...
  10. JS获取当前时间戳的方法 1