赋值运算符与逗号运算符
赋值运算符和赋值表达式
1. 赋值运算符(⾃右⾄左结合顺序)
“=“
⼆(元)⽬运算符可以和赋值符可组成复合赋值符。
“+=,-=,*=,/=,%=,&=,|=,<<= , >>=, ^=“
为了简化程序,使程序精炼;为了提⾼编译效率,产⽣⾼质量的⽬标代码。
2. 赋值表达式
变量 = 表达式;
左值不能为表达式、常量(不能被赋值)等。左值可以作为右值。
a = (b=5); a =
b = 5;
赋值表达式为表达式中的⼀种,故赋值操作不仅可以出现在赋值语句,还可以以表达式形式出现在输出语句、循环语句等。如:cout << (a = b); 此处要⽤括号括起来
3. 赋值过程中的类型转换:
不同类型的整型数据间的赋值归根到底就是⼀条:
按存储单元中的存储形式直接传送。
1. 浮点型数据赋给整型变量时,舍弃⼩数部分,在内存中以整数形式存储。
2. 整型数据赋给浮点型时数值不变,以双/单精度指数形式存储到变量中。
3. double类型数据赋给float变量时,注意数值范围不要溢出。
4. 字符型数据以ASCII码赋给整型变量。
5. 整型变量赋给字符型时,会截断保留低⼋位。
6. signed型数据赋给unsighed型变量
signed是以补码形式存储,⽽unsigned数值⽆符号,全部⼆进制(原码)⽤来表⽰数据本⾝,故直接将存储单元内容照搬
例如:short int a = -1;(负数需要转换,整数的原码反码补码⼀致)
则 a为 1000 0001 -> 1111 1110 + 1 = 1111 1111
unsigned short b = a;
则 b中存储的是原码 1111 1111 65535
逗号表达式的运算顺序逗号运算符和逗号表达式
C++提供的⼀种特殊的运算符,⼜称顺序求值运算符。
将多个表达式“串联”起来,从左⾄右求解各个表达式的值,最终结果在最后⼀个表达式。
3+5,6+8 --> 14
a = 3*5,a*4 --> 60 赋值符优先级⾼于逗号运算符
C和C++之所以语⾔表达能⼒强,其中⼀个重要⽅⾯在于它的表达式丰富,运算符功能强,因⽽使⽤灵活,适应性强。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论