C中的运算符与表达式(二)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

一,赋值运算符

1, 赋值运算符是右结合的,a=b=c=10;赋值号两边的部分称为左值与右值,只有变量名才可以做左值,如a++=1,a=b++=c++=2 都市错误的.

2,赋值操作是一种破坏性输入,即不管左边变量原来具有什么样的值,结果都要成为右边表达式的值.

3,赋值运算符中的类型转换:用左边变量的类型去剪裁改造右边的表达式.

1> 由float double 向 int :去掉小数部分,只赋整数部分,不按四舍五入处理.

2> 由int 向 float或double ;全部补零.

3> 由double 向float 在float类型所能容纳的范围内,把double数值的前七位放入float中,超过范围出错.

4> 由 unsigned char 向 int 把字符放入整型变量的低八位.

由char 向 int 把具有符号的字符赋给整型变量,这是,如果字符符号位是0,则整数的高八位全部补0,如字符符号位是1,则高八位全补1,这称为”符号扩展”,目的是为了保证赋值后的数值保持不变.

4,复合的赋值运算符:在普通的赋值运算符前面加上符号.

一个例子: int a= 8;

a+=a-=a*a;

运算步骤:1,a=a-(a*a) 结果 –56;

2,a=a+a;注意这时候a已变为–56,所以 a 最后为 –122;

二,逗号运算符: 逗号作用有两个:分割符,运算符.作为运算符,它把两个对象”连接起来”,使之成为一个逗号表达式 <表达式1>,<表达式2>,<表达式3>~~~<表达式n>;

1,逗号运算符的优先级是最低级的,结合性,从左向右;

2,后面表达式子的计算可以用前面表达式的结果,

3,最后一个表达式的值作为整个表达式的值.

三,sizeof运算符:是一个单目运算,求运算对象所具有的字节数

int i = 162;float y;(本篇中的例子全用伪代码表示)

1> sizeof(++i) = 2; i=162;仅求对象的长度,并不对对象进行求值运算.

2> sizeof(162)=2;int型.

3> sizeof(“china”)=6;加上结束符\0.

4> sizeof(1.1)=8;编译器把浮点型做为double型来处理.

5> sizeof(float)=4,sizeof(double)=8;

6> sizeof(y=2*I+6.0);因为定义的y为float型.

虽然sizeof的使用像是一个函数调用,但它只是个运算符,不是函数,没有函数调用方面的开销.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航