嘿,兄弟们!今天咱们来聊聊C语言的运算符优先级,这可是写代码必备的知识!
PS:89游戏提供三国游戏/真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
你想象一下,你给电脑下达指令,它就像个听话的小弟,你说啥它就干啥。可是,你要是把指令写得乱七八糟,它就不知道该先执行哪个了,最后导致代码崩溃,整个游戏就GG了。
所以,为了让代码老老实实按照咱们的意愿执行,就得搞清楚运算符的优先级。
C语言中的运算符优先级就像是一场“谁先谁后”的比赛。优先级高的运算符就先执行,优先级低的运算符就等一等,乖乖排队。
咱们先来个把优先级高的运算符排在前面,优先级低的运算符排在后面,方便大家一眼就看出谁是老大:
运算符 | 优先级 | 描述 | |
---|---|---|---|
最高 | 括号,优先级最高,先算括号里面的内容 | ||
最高 | 数组下标,优先级最高,先算下标 | ||
最高 | 成员访问运算符,优先级最高,先访问成员 | ||
最高 | 结构体指针访问成员,优先级最高,先访问成员 | ||
高 | 自增运算符,优先级高 | ||
高 | 自减运算符,优先级高 | ||
高 | 逻辑非运算符,优先级高 | ||
高 | 位运算取反,优先级高 | ||
高 | 单目负号,优先级高 | ||
高 | 单目取地址,优先级高 | ||
高 | 取地址运算符,优先级高 | ||
sizeof | 高 | 求大小运算符,优先级高 | |
中 | 乘法运算符,优先级中 | ||
中 | 除法运算符,优先级中 | ||
中 | 模运算符,优先级中 | ||
中 | 加法运算符,优先级中 | ||
中 | 减法运算符,优先级中 | ||
中 | 左移运算符,优先级中 | ||
中 | 右移运算符,优先级中 | ||
中 | 小于运算符,优先级中 | ||
中 | 大于运算符,优先级中 | ||
中 | 小于等于运算符,优先级中 | ||
中 | 大于等于运算符,优先级中 | ||
中 | 等于运算符,优先级中 | ||
中 | 不等于运算符,优先级中 | ||
中 | 位运算与,优先级中 | ||
中 | 位运算异或,优先级中 | ||
中 | 位运算或,优先级中 | ||
低 | 逻辑与运算符,优先级低 | ||
低 | 逻辑或运算符,优先级低 | ||
低 | 三目运算符,优先级低 | ||
最低 | 赋值运算符,优先级最低 | ||
最低 | 加等于运算符,优先级最低 | ||
最低 | 减等于运算符,优先级最低 | ||
最低 | 乘等于运算符,优先级最低 | ||
最低 | 除等于运算符,优先级最低 | ||
最低 | 模等于运算符,优先级最低 | ||
最低 | 左移等于运算符,优先级最低 | ||
最低 | 右移等于运算符,优先级最低 | ||
最低 | 位与等于运算符,优先级最低 | ||
最低 | 位异或等于运算符,优先级最低 | ||
最低 | 位或等于运算符,优先级最低 | ||
最低 | 逗号运算符,优先级最低 |
看完表格是不是有点眼花缭乱?别急,咱们来点例子,让你彻底明白!
假设你有一个表达式: a + b c / d - e
按照运算符优先级,这个表达式应该按照以下顺序执行:
1. 和 / 的优先级相同,从左到右执行,先执行 b c 再执行 (b c) / d
2. + 和 - 的优先级相同,从左到右执行,先执行 a + (b c / d) 再执行 (a + (b c / d)) - e
所以,最终的执行顺序是: b c -> (b c) / d -> a + (b c / d) -> (a + (b c / d)) - e
当然,你也可以用括号来改变运算顺序,就像这样: (a + b) c / d - e,这样就会先执行 a + b,然后再执行后面的运算。
记住,用括号可以改变运算顺序,就像你给电脑小弟发指令,用括号把重要的部分圈起来,让它先执行!
总结一下,搞懂C语言的运算符优先级,就像给你的代码上了保险,保证代码能够按照你的意愿执行。
来个小测验,考考你对运算符优先级的理解:
c
int a = 5, b = 2, c = 3;
int d = a + b c / 2;
// 猜猜看,d的值是多少?
在评论区留下你的答案吧!
期待与你一起玩转C语言,成为代码大神!