C语言入门教程-运算符优先级
[09-12 13:07:53] 来源:http://www.88dzw.com 电路基础 阅读:8449次
文章摘要:运算符优先级C语言有丰富的运算符。如果不清楚这些运算符的优先级,则在同时使用多个运算符时就容易产生混乱。 x=5+3*6; 上面的表达式中,x被赋值23,而不是48,因为在C中乘除法的优先级高于加减法。 char *a[10]; 这里的a是一个指向大小为10的字符数组的指针,还是一个包含10个字符指针的数组呢?答案只有从C的优先级约定中寻找。类似的,在前面我们看到,*p.i= 10;这条语句由于算符优先级错误而不能执行,而必须用(*p).i=10;强制其使用正确的优先级。 下表摘自Kernighan 和 Ritchie合著的《C程序设计语言》,运算符的优先等级从高到低排列。 运算符
C语言入门教程-运算符优先级,标签:电子电路基础,模拟电路基础,http://www.88dzw.com运算符优先级
C语言有丰富的运算符。如果不清楚这些运算符的优先级,则在同时使用多个运算符时就容易产生混乱。x=5+3*6;
上面的表达式中,x被赋值23,而不是48,因为在C中乘除法的优先级高于加减法。
char *a[10];
这里的a是一个指向大小为10的字符数组的指针,还是一个包含10个字符指针的数组呢?答案只有从C的优先级约定中寻找。类似的,在前面我们看到,*p.i= 10;这条语句由于算符优先级错误而不能执行,而必须用(*p).i=10;强制其使用正确的优先级。
下表摘自Kernighan 和 Ritchie合著的《C程序设计语言》,运算符的优先等级从高到低排列。
运算符 结合性
( [ - . 自左向右
! - ++ -{- + * & (类型) sizeof 自右向左
(上行中的 +、-、* 都为单目算符)
* / % 自左向右
+ - 自左向右
<< >> 自左向右
< <= > >= 自左向右
== != 自左向右
& 自左向右
^ 自左向右
| 自左向右
&& 自左向右
|| 自左向右
?: 自左向右
= += -= *= /= %= &= ^= |= <<= >>= 自右向左
, 自左向右
由上表可知,char *a[10];声明了一个包含10个字符指针的数组。还可以知道为什么正确处理表达式(*p).i时括号是必不可少的。通过一定的练习您可以记住表格的大部分内容,但某个被疏忽的优先级错误还是会不时制造一些麻烦。
Tag:电路基础,电子电路基础,模拟电路基础,电路基础
- 上一篇:C语言入门教程-命令行参数
《C语言入门教程-运算符优先级》相关文章
- › C语言入门教程-二进制文件
- › C语言入门教程-打开文本文件
- › C语言入门教程-读取文本文件
- › C语言入门教程-指针
- › C语言入门教程-为什么要用指针?
- › C语言入门教程-指针基础
- 在百度中搜索相关文章:C语言入门教程-运算符优先级
- 在谷歌中搜索相关文章:C语言入门教程-运算符优先级
- 在soso中搜索相关文章:C语言入门教程-运算符优先级
- 在搜狗中搜索相关文章:C语言入门教程-运算符优先级
编辑推荐
分类导航
最新更新
- · 什么是系统仿真
- · 什么是CPCI
- · 英特尔 Parallel Composer入门
- · 什么是支持数据库,什么是中宏数据库
- · 什么是数据交换技术
- · 什么是内部数据传输率
- · 什么是空间数据交换中心
- · 什么是差异备份
- · 什么是备份集
- · 什么是映像备份
热门排行
- · IGBT模块
- · 什么是24脉波整流变压器
- · 自动变速器不能强制降挡故障原因、诊断与排
- · 什么是MD机
- · 中心频率,什么是中心频率
- · 功率单位mw和dbm的换算表
- · 中值滤波模块设计思路
- · 反馈振荡器的原理
- · 气体激光器简介
- · 数制与进位记数法