« 计算机硬盘容量是如何计算的?不争气的百度 »

C语言赋值运算符和赋值表达式

作者:vich 发布于 2008-11-10 13:22 评论(1)人阅读

C语言的赋值运算符包括基本赋值运算符和复合赋值运算符两种。

一、基本赋值运算符

形式:  =

功能:将赋值运算符右边表达式的值赋给其左边的变量。

例如:x=2+b 意思是将10+b的运算结果赋给变量x。

总结几个要点:

  1. 赋值号(=)左边只能是变量,绝对不能是常数或表达式。这是因为常数和表达式是没有存储单元的。
  2. 赋值号右边表达式类型要与左边的变量保持一致。如果不一致,则先将右边表达式的值转换为与左边变量相同的类型,然后进行赋值。
  3. 赋值运算符的结合方向为自右向左。如:float x=3.1;int y; y=x+2; 这个赋值运算的处理过程是:现将2转换为2.0,再计算3.1+2.0;运算结果为5.1,最后将float 的结果5.1转换为int型整数5并付给变量y。

二、复合赋值运算符

为了简化程序并提高编译效率,C语言允许在赋值运算符”=“之前加上其他运算符,这样就构成了复合赋值运算符。

形式:   算术运算符=

功能:对赋值运算符左、右两边的运算对象进行指定的算术运算符运算,再将运算结果赋予右边的变量。

例如:

  • a+=b;  等价于a=a+b;
  • a-=b;  等价于a=a-b;
  • a*=b;  等价于a=a*b;
  • a/=b;  等价于a=a/b;
  • a%=b;  等价于a=a%b;

总结几个要点:

复合赋值运算符右边的表达式是一个运算”整体“,不能把它们分开。如:a*=b+1 ;等价于a=a*(b+1);。如果把:a*=b+1;理解为a=a*b+1;那就错了。

三、赋值表达式

用赋值运算符将运算对象连接而成的式子称为赋值表达式。例如:k=(j=1);由于赋值运算符的结合性是从右向左的,因此该赋值表达式等价于k=j=1。

下面是赋值表达式的例子:

int k,a=1,j=5;

a+=j++;    /*a被赋值为5,j的值改变为6*/ (此处是先使用j的值,然后再自加。关于++ ,--双目运算见这里

a=20+(j=7);   /*a被赋值为27*/

a=(j=9)+(k=7);  /*a被赋值为16*/


原创文章如转载,请注明:转载自微风博客 [ http://www.vichx.com/ ]

本文链接地址:http://www.vichx.com/post/c-2-4-2.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

RSS图标订阅 [留言] RSS订阅  手机版
搜索栏

热门文章

最新评论及回复

最新文章

关于微风博客
Powered By Z-Blog
CopyRight 2007-2008 微风博客 沪ICP备07009058号 [管理]