序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目 ( ) 圆括号 从左到右 [ ] 方括号 从左到右 2 + 正号 从右到左 单目 - 负号 从右到左 单目 ++ 自增 从右到左 单目 前缀增,后缀增 - - 自减 从右到左 前缀减,后缀减 ~ ...
分类:
编程语言 时间:
2014-08-11 23:53:23
阅读次数:
318
++、--两种运算符都是单目运算符,具有向右结合性(也就是优先与运算符右边的变量结合),而且他们的优先级比其他算术运算符高。当++或--运算符置于变量的左边时,称为前置运算,表示先进行自增或自减运算再使用变量的值,而当++或--运算符置于变量的右边时,称为后置运算,表示先引用变量的值再自增或自减运算...
分类:
其他好文 时间:
2014-08-11 17:31:02
阅读次数:
267
运算符结合性() [] -> .自左至右! ~ ++ -- - (type) * & sizeof自右至左* / %自左至右+ -自左至右>自左至右 >=自左至右== !=自左至右&自左至右^自左至右|自左至右&&自左至右||自左至右?:自右至左=自右至左,自左至右1.优先级最高的并不是真正意义上的...
分类:
编程语言 时间:
2014-08-04 01:53:46
阅读次数:
234
函数的重载操作符中也有不少细节
1 重载操作符特点
重载操作符本质上就是重载函数,它的特点:
除了函数调用操作符‘()’外,所有的重载操作符的形参数目必须与操作符的操作数目相等。
重载操作符的操作数必须至少有一个类类型,否则就不是重载而是原型了。
优先级和结合性不会发生改变,例如对于算数操作符的重载,*的优先级肯定还是大于+
不具有短路求值特性(就是根据已有的值就可以判断出最终...
分类:
编程语言 时间:
2014-07-21 11:17:04
阅读次数:
190
十四、重载操作符与转换
1. 重载操作符的定义
重载操作符必须具有至少一个类类型或枚举类型的操作数,这条规则强制重载操作符不能重新定义用于内置类型对象的操作符含义。
int operator +(int, int) // 错误,内置数据类型不能重载操作符
重载操作符,操作符的优先级、结合性或操作数数目不能改变。重载操作符并不保证操作数的求值顺序,不再...
分类:
编程语言 时间:
2014-07-12 17:06:11
阅读次数:
329
题目:
写一个三则运算(加减乘)表达式的计算程序,为了简化,规定数字只有一位,表达式内没有空格,但允许有括号。满足四则运算的结合性和优先级。
解答:
首先写出BNF(包括结合性和优先权)。
exp → exp addop term | t
e r m
addop → + | -
term → term mulop
factor | f a c t o r
mulop...
分类:
其他好文 时间:
2014-05-15 18:17:45
阅读次数:
370
优先级操作符描述例子结合性1()[]->.::++--调节优先级的括号操作符数组下标访问操作符通过指向对象的指针访问成员的操作符通过对象本身访问成员的操作符作用域操作符后置自增操作符后置自减操作符(a
+ b) / 4;array[4] = 2;ptr->age = 34;obj.age = 34;...
分类:
编程语言 时间:
2014-05-07 09:45:56
阅读次数:
396
论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读。这样的迷惑或解读大都发生在表达式中存在着较为复杂的副作用时。但从本质上看,仍然是概念理解上的偏差。本文试图通过对三个典型表达式的分析,集中说说运算符的优先级、结合性方面的问题,同时说明它们跟求值过程之间存在的区别与联系。优先级决定表达式...
分类:
编程语言 时间:
2014-05-01 04:34:59
阅读次数:
475