c语言未声明的标识符什么意思_C 语言中,x += 5 == 4 是什么意思?

667e4d695641ee502e0d13d7a6b264c1.png

  脚本之家

你与百万开发者在一起

667e4d695641ee502e0d13d7a6b264c1.png 6d9da445b426428fae0f6f76db4b8e77.gif

873be2d54fab4efb2209e2acbe14c11f.png

#讨论这个有意义吗?

这个是在知乎上看到的一个问题,评论挺多的。其中有人提到,研究这个东西有什么用?编程的时候我们不能这么写的。我记得在大学的时候,我们的副院长给我们上课,就给我们提到,要习惯并且喜欢使用 「( 」和 「)」,这两个符号。

所以上面的表达式,如果想表达清楚自己的意图,可以这样写

((x += 5) == 4)

或者是

(x += (5 == 4))

但是有些程序员为什么喜欢这样写呢?

我们可以肯定,写出这样代码的人,一定对运算符优先级背得滚瓜烂熟了。如果作为一个程序员,他认为对运算符要了如指掌,他觉得别人对这个代码肯定一眼就能看懂,他写出这样的代码也是没有问题的。

我们学这样的代码有什么用?

学习这样并不表示我们要写出这样的代码,而是,我们如果在工作学习中,遇到这样的代码,我们就一眼能看出来这个代码的作用。

C语言的标准有几百页,大部分人不会仔细研究每个细节,有些工程师觉得某些东西没有用,大概率是因为他在自己的工作中没有用到。有的程序员喜欢研究或者在工作中需要使用这样的方法,这就是这种代码存在的其中一个原因吧。

#表达式和运算符优先级

C语言在一个表达式中,如果遇到几个运算符,要考虑优先级结合方向

比如,表达式 x pri1 y pri2 z,可能出现两种可能性

  • (x pri1 y )pri2 z
  • x pri1 (y pri2 z)

如果运算符 pri1 的优先级比pri2 高,那么就是上面的第一种情况。

如果运算符 pri1 的优先级比pri2 低,那么就是上面的第二种情况。

如果优先级相同,那就要考虑结合方向。

结合方向是 「左到右」或者「右到左」。

例如,「= 」 的结合方向是 「右到左」。

所以

a = b = c  表达式的意义是 a =( b = c  )

而 「+」的结合方向是 「左到右」

所以

a + b + c  表达式的意义是 (a + b) + c

#C语言运算符优先级

f1267e208c2eaf9bdffb05b67d8b5b5c.png

#解析上面的表达式

x += 5 == 4
  • 「+=」 的优先级是14
  • 「 ==」 的优先级是 7

所以上面表达式的意义是

x += (5 == 4)

运行一下

e59ab176d653c80010e3519e03471b45.pngcd640d24adfbd187d1a7e1b2136e0ec8.png

#表达式的巧用

很多人不怎么用这种取巧的写法,我这两天看代码看到一个,截图给大家看看,非常简单,也是一种取巧的方法,挺有意思的。5f1453e0f4b7717cafabf4b07e147089.png一般情况下,我们还是会把 x = y 写在if 外面,直接写在if里面还是挺有意思的。

如果写成下面这样的话会输出什么呢?评论给出你的答案~

#include "stdio.h"

int main(void){
 int x = 2; 
 int y = 4;
 int z = 4;
 
 if( x = y >= z){
  printf("-----------01
");
 }
 return (0);

- END - 点击卡片进入小程序,签到赢礼品 ??????

0f35e7efd63b3b97acab04d9f9775146.png

(更多精彩值得期待……)

123332c309465b077adb50f5f637e99f.gif

更多精彩

在公众号后台对话框输入以下关键词

查看更多优质内容!

女朋友 | 大数据 | 运维 | 书单 | 算法

大数据 | JavaScript | Python | 黑客

AI | 人工智能 | 5G | 区块链

机器学习 | 数学 | 送书

dfc8e9547d718d641df2ce52c9967d05.pngdf093a3ba3e885f044033bbd84567989.gif

● 32d9a40e6593b98dd05c03624155bd28.gif 脚本之家粉丝福利,请查看 

● 32d9a40e6593b98dd05c03624155bd28.gif 人人都欠微软一个正版? 

● 32d9a40e6593b98dd05c03624155bd28.gif C 语言漏洞最严重,PHP 最易受攻击,程序员该怎么写代码?

● 这才是你需要的C语言、C++学习路线!

 C语言写个贪吃蛇游戏

● C语言获得“2019 年度编程语言”称号

914e1ce23c6e9d5d71154e2e8c366143.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值