设为首页 加入收藏

TOP

附录D 运算符优先级(2)
2013-10-07 15:45:29 来源: 作者: 【 】 浏览:80
Tags:附录 运算 优先

附录D  运算符优先级(2)

有些符号(如*或&)被用作多个运算符。在这种情况下,一种形式是一元(一个操作数),另一种形式是二元(两个操作数),编译器将根据上下文来确定使用哪种形式。对于同一个符号可以两种方式使用的情况,表D.1将运算符标记为一元组或二元组。

下面介绍一些优先级和结合性的例子。

对于下面的例子,编译器必须决定先将5和3相加,还是先将5和6相乘:

 

*运算符的优先级比+运算符高,所以它被首先用于5,因此表达式变成3 +30,即33。

对于下面的例子,编译器必须决定先将120除以6,还是先将6和5相乘:

 

/和*的优先级相同,但这些运算符从左到右结合的。这意味着首先应用操作数(6)左侧的运算符,因此表达式变为20*5,即100。

对于下面的例子,编译器必须决定先对str递增还是先对str解除引用:

 

后缀++运算符的优先级比一元运算符*高,这意味着加号运算符将对str进行操作,而不是对*str进行操作。也就是说,将指针加1,使之指向下一个字符,而不是修改被指针指向的字符。不过,由于++是后缀形式,因此将在将*str的值赋给ch后,再将指针加1。因此,上述表达式将字符W赋给ch,然后移动指针str,使之指向字符h。

下面是一个类似的例子:

 

前缀++运算符和一元运算符*的优先级相同,但它们是从右到左结合的。因此,str(不是*str)将被加1。因为++运算符是前缀形式,所以首先将str加1,然后将得到的指针执行解除引用的操作。因此,str将指向字符h,并将字符h赋给ch。

注意,表D.1在"优先级"行中使用一元或二元来区分使用同一个符号的两个运算符,如一元地址运算符和二元按位AND运算符。

附录B列出了一些运算符的替代表示。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇B.1 C++关键字 下一篇15.3.6 栈解退(1)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何利用Python做数 (2025-12-24 23:48:36)
·如何使用python进行 (2025-12-24 23:48:34)
·python 爬虫入门该怎 (2025-12-24 23:48:31)
·Java 实现多个大文件 (2025-12-24 23:22:00)
·Java多线程编程在工 (2025-12-24 23:21:56)