关于自加运算符与二元运算符
2005-02-23 08:50
309 查看
1、自加运算符 ++
运算规则:++在变量前,先运算,后取值;反之毅然。
如:int a = 2,b;
b= ++a; //相当于:{a=a+1;b=a;}
b = a++; //相当于:{b=a;a=a+a;}
2、二元运算符 +
运算规则:先求得 + 号两边的表达式的值,再返后两端值相加后的结果。
如:int a = 2, b = 3,c;
c = a +b; //相当于:{2+3;c=5}
c = (a + a) + ( a + b ); //相当于:{2+2,2+3,4+5,c=9}
3、++与+的混合应用
运算规则:++运算符的优先级高于+运算符。
如:int a, m;
m = (++a) + (++a) + (++a);
// 结果为 m = 13
m = (++a) + (++a) + (++a) + (++a);
// 结果为 m = 19
解释如下:
m = (++a) + (++a) + (++a); 相当于:m = ((++a) + (++a)) + (++a);
按从左至右的顺序,两个数相加时,先求得要加的两个数,按照这个原则应为:
m = (4+4) + (++a) // a = 4
= 8 + (++a) //a = 4
= 8 + 5 // a = 5
= 13
同理:m=(++a) + (++a) + (++a) + (++a); 相当于:m=(((++a) + (++a)) + (++a)) + (++a); //a=2
m = (( 4 + 4) + (++a)) + (++a) //a=4
= (8 + 5)+(++a) //a=5
= 13 + 6 //a=6
= 19
运算规则:++在变量前,先运算,后取值;反之毅然。
如:int a = 2,b;
b= ++a; //相当于:{a=a+1;b=a;}
b = a++; //相当于:{b=a;a=a+a;}
2、二元运算符 +
运算规则:先求得 + 号两边的表达式的值,再返后两端值相加后的结果。
如:int a = 2, b = 3,c;
c = a +b; //相当于:{2+3;c=5}
c = (a + a) + ( a + b ); //相当于:{2+2,2+3,4+5,c=9}
3、++与+的混合应用
运算规则:++运算符的优先级高于+运算符。
如:int a, m;
m = (++a) + (++a) + (++a);
// 结果为 m = 13
m = (++a) + (++a) + (++a) + (++a);
// 结果为 m = 19
解释如下:
m = (++a) + (++a) + (++a); 相当于:m = ((++a) + (++a)) + (++a);
按从左至右的顺序,两个数相加时,先求得要加的两个数,按照这个原则应为:
m = (4+4) + (++a) // a = 4
= 8 + (++a) //a = 4
= 8 + 5 // a = 5
= 13
同理:m=(++a) + (++a) + (++a) + (++a); 相当于:m=(((++a) + (++a)) + (++a)) + (++a); //a=2
m = (( 4 + 4) + (++a)) + (++a) //a=4
= (8 + 5)+(++a) //a=5
= 13 + 6 //a=6
= 19
相关文章推荐
- 关于自加运算符与二元运算符
- 关于java运算符
- 第八周任务二——关于时间函数运算符的重载
- 关于C++引用运算符&的若干学习笔记
- 关于++和--运算符的理解
- 关于 一元约简运算符 非运算
- C语言查遗补缺——关于自增运算符的有趣的例子
- 关于php运算符优先级问题(php不完全遵守运算符优先级)
- 关于!运算符使用的问题
- C++中关于运算符 “.”和“->”的区分
- 关于结构体的四个运算符
- 关于C++中操作符重载的疑问 :四个运算符=, ->, [], ()不可以重载为全局函数(友员函数)
- 关于sizeof运算符
- 关于Maven installed出现source 1.5 中不支持 diamond 运算符问题(请使用 -source 7 或更高版本以启用 diamond 运算符)
- 关于Oracle中的运算符与null值
- 关于运算符
- 关于C语言中的逗号运算符
- 关于运算符
- 关于C语言中的自加运算符问题
- 关于>?和<?运算符