C语言真的存在趋向于运算符吗?
在某乎看到有人说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语言真的存在趋向于运算符吗?相关推荐
- 真的存在趋向于运算符 --> 吗?
今天看到了下边的这段代码: #include <stdio.h>int main(){int x=10;while(x --> 0){printf("%d ",x ...
- C/C++ 趋向于运算符的恶作剧
前阵看到一个帖子,说c语言有一个鲜为人知的运算符叫做"趋向于",写作"-->",还给出了源码: #include <stdio.h> int ...
- 趋向于运算符-->骗局
看到网上有人说c语言有–>趋向于这个运算符,通过程序的结果判断,纯属骗局. 原因:如果有趋向于运算符,那么正常情况下应该会打印两行,一行是9876543210一行是12345678910,实际情 ...
- sizeof是c语言的一种运算符,C语言位运算和sizeof运算符详解
位运算和sizeof运算符 C语言中提供了一些运算符可以直接操作整数的位,称为位运算,因此位运算中的操作数都必须是整型的.位运算的效率是比较高的,而且位运算运用好的话会达到意想不到的效果.位运算主要有 ...
- python语言有哪些类型的运算符_python(4)-变量 数据类型和运算符
第二章:变量.数据类型.运算符 思考:怎么理解变量和内存? 变量:就等同于上面图中的age name hobby 内存:存储位置里所装的内容 18 张三 打球 变量一定是存在某个地址,可以从变量名找到 ...
- c语音异或运算符_C语言中的按位异或运算符有什么用处?
原标题:C语言中的按位异或运算符有什么用处? 想知道C语言中的按位异.运算符有什么用处,首先C语言中^为按位异或运算符,若两个二进制位相同,则结果为0,不同为1 例: #include "s ...
- C语言自加自减运算符(++i / i++) - C语言零基础入门教程
目录 一.C 语言自加++ / 自减 – 运算符简介 1.前 ++ 后 ++ 的区别 2.前–后-- 的区别 二.C 语言自加++/自减–运算符实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : ...
- python位运算符_详细介绍Python语言中的按位运算符
按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 按位与 ( bitwise and of x and y ) & 举例: 5&3 = 1 解释: 101 ...
- c语言表达式10 3的结果是,C语言程序设计--第3讲运算符与表达式.ppt
C语言程序设计--第3讲运算符与表达式资料 §3.10 逗号运算符和逗号表达式 逗号表达式的一般形式可以扩展为 表达式1,表达式2,表达式3,--,表达式n 它的值为表达式n的值. 逗号运算符是所有运 ...
最新文章
- 家用笔记本电脑什么牌子好_家用直饮水机什么牌子好 家用直饮水机品牌排名...
- 计算机及相关设备制造业2020,在现实生活中,接近完全垄断市场类型的行业包括()。A.计算机及相关设备制造业B.稀有...
- 重构指南 - 引入参数对象(Introduce Parameter Object)
- jdbc驱动程序_JDBC操作数据库的步骤
- php实现ssh客户端,php无阻塞SSH客户端实例
- vector与list的接口介绍与如何使用以及区别,附代码。
- virtual box一直正在加载文件_如何用Band-in-a-box进行民乐编曲
- bootstrapValidator验证失败问题
- UnicodeEncodeError: #39;ascii#39; codec can#39;t encode character u#39;\u5929#39; in position 2...
- c语言程序改错:求两个整数的最小公倍数,【C语言】求两个整数的最大公约数、最小公倍数...
- webbrowser在vb中叫
- Android 7.0(API 24)以上调用系统安装包问题
- 基于Arduino的循迹小车
- Could not read JSON: Cannot construct instance of `java.util.ArrayList$SubList`Redis反序列化异常
- 风控模型——评分卡模型
- android为什么会用流量,手机流量为什么会偷跑?
- 技术人攻略访谈四十-刘睿民:数据库战国时代,我不跟你们玩政治!
- 宝付国际手把手教你如何成为亚马逊卖家
- Controllable Generation from Pre-trained Language Models via Inverse Prompting翻译
- 色彩模式-RGB、HSV、CMYK、灰度模式、位图模式......
热门文章
- 华为scp快充协议详解_连华为SCP快充都支持 台电双口充电头测试
- 未知的information,已知的technology-写给未来的思维范式
- 猎豹浏览器关掉图片显示
- java构造器(默认构造方法、参数化构造方法)
- 开源 java CMS - FreeCMS2.8 栏目管理
- Jmeter对基于websocket协议的压力测试
- 【新华三】网络工程师 H3C设备-如何配置单臂路由,实现不同网段通信?来来来~轻松掌握单臂路由技术原理!
- 音频文件格式怎么转换html,mp3格式转换 如何转换音频文件|手机录音转换mp3格式...
- 如何计算机床水箱大小,缓冲水箱容积大小如何确定?缓冲水箱容积如何估算?...
- JS获取当前时间戳的方法 1