c++之赋值语句&运算符和表达式

2025-10-23 08:01:00

1、在C++语言中,“=”作为赋值运算符,而不表示“等于”判断。赋值语句是由赋值表达式再加上分号构成的表达式语句,它是程序中使用最多的语句之一。

   变量=表达式;

在赋值语句的使用中,需要注意以下几点:

   1)由于赋值运算符“=”右边的表达式也可以是赋值表达式,因此,下述形式 :

    变量=(变量=表达式);

  是成立的,从而形成嵌套的情形。其展开之后的一般形式为:

  变量=变量=…=表达式;

    例如,“a=b=c=d=e=5;”,它实际上等价于:e=5;d=e;c=d;b=c;a=b;

2、  2)在进行赋值运算时,如果赋值运算符两边的数据类型不同,系统将会自动进行类型转换,即将赋值运算符右边的数据类型转换成左边的变量类型。当左边是整型而右边是实型时,将去掉小数部分并截取该整型对应的有效位数。

3、例:输入两个正整数A和B,试交换A、B的值(使A的值等于B,B的值等于A)。

  【分析】 交换两个变量的值方法很多,一般我们采用引入第三个变量的算法,二个变量交换,可以想像成一瓶酱油和一瓶醋进行交换,这时容易想到拿一个空瓶子过来:

  ① 将酱油倒到空瓶中;② 将醋倒到酱油瓶中;③ 将原空瓶中的酱油倒到醋瓶中。

  程序如下:

  #include<iostream>                     //使用cin,cout,须调用iostream库

  using namespace std;

  int main()

  {  

          int a,b,c;                                   //定义三个变量

     cout<<"Input a,b=";                  //输入提示Input a,b=

     cin>>a>>b;                              //输入A、B的值

     c=a;   a=b;   b=c;                     //交换A、B的值

     cout<<"a="<<a<<"  b="<<b<<endl;     //输出结果

          return 0;

  }

c++之赋值语句&运算符和表达式

4、例:圆柱体的表面积

输入底面半径r和高h,输出圆柱体的表面积,保留3位小数,格式见样例。

样例输入:3.5  9       样例输出:274.889

#include<cstdio>//使用printf和scanf, 须调用cstdio库

#include<cmath>//使用数学函数atan,须调用cmath库

using namespace std;//在这个程序中可以省略这行

int main()

    double pi=3.1415926;//定义pi为常量

    double r,h,s1,s2,s;//定义双精度实型,float为单精度实型

    scanf("%lf%lf",&r,&h);//r和h前的&符号不能漏掉,double型用%lf

    s1=pi*r*r; //计算底面积

    s2=2*pi*r*h;//计算侧面积

    s=2*s1+s2;//计算总的表面积

    printf("Area=%0.3lf\n",s);//输出结果保留3位小数,注意用lf格式

    return 0;

}

c++之赋值语句&运算符和表达式

1、运算符纵览

1.算术运算符

               用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符

  用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符

  用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4.位操作运算符

              参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)左移(<<)、右移(>>)六种。

5.赋值运算符

  用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符

  这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符

  用于把若干表达式组合成一个表达式(,)。

8.指针运算符

  用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符

  用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符

  有括号(),下标[],成员(->,.)等几种。

2、一、算术运算符

1、模运算符

  求余的运算符“%”也称为模运算符,是双目运算符,两个操作数都是整型数。a%b的值就是a除以b的余数,5%2余数为1。其操作对象只能是整型数,而其他四种运算符对int,float,double,char都适用。

w  

2、除法运算符

  C++语言的除法运算符有一些特殊之处,即如果a、b是两个整数类型的变量或常量,那么a/b的值是a除以b的商。例如, 5/2的值是2,而不是2.5,而5.0/2或5/2.0的值是2.5。

3、自增自减运算符

  自增、自减运算符用来对一个操作数进行加1或减1运算,其结果仍然赋予该操作数,而且参加运算的操作数必须是变量,而不能是常量或表达式。

  1)自增运算符。例如,x++表示在使用x之后,使x的值加1,即x=x+1;++x表示使用x之前,先使x的值加1,即x=x+1。

  2)自减运算符。例如,x--表示在使用x之后,使x的值减1,即x=x-1;--x表示使用x之前,先使x的值减1,即x=x-1。

4、复合算术赋值。例如,a+=1,相当于a=a+1;   a+=b,相当于a=a+b。

c++之赋值语句&运算符和表达式

3、二、关系运算符

    关系运算符用于数值的大小比较。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种,它们都是双目运算符。

  关系运算符运算的结果是整型,值只有两种:0或1,0代表关系不成立,1代表关系成立。

请看下面的例子:

#include<iostream>

using namespace std;

int main()

{     

    int n1=4,n2=5,n3;

    n3=n1>n2;//n3的值为0

    cout<<n3<<endl;

    n3=n1<n2;//n3的值变为1

    cout<<n3<<endl;

    n3=n1==4;//n3的值变为1

    cout<<n3<<endl;

    n3=n1!=4;//n3的值变为0

    cout<<n3<<endl;

    n3=n1==1+3;//n3的值变为1

    cout<<n3<<endl;

    return 0;

}

c++之赋值语句&运算符和表达式

4、三、逻辑运算符

C++语言中提供了三种逻辑运算符:与运算(&&)、或运算(||)、非运算(!)。与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。 非运算符(!)为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:

  按照运算符的优先顺序可以得出:

     a>b && c>d等价于(a>b) && (c>d)

     !b==c||d<a等价于((!b)==c)||(d<a)

     a+b>c && x+y<b等价于((a+b)>c) && ((x+y)<b)

 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来表示。其求值规则如下:

  1.与运算&&参与运算的两个量都为真时,结果才为真,否则为假。例如,5>0 && 4>2,由于5>0为真,4>2也为真,相与的结果也为真。

  2.或运算||参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:5>0||5>8,由于5>0为真,相或的结果也就为真

    3.非运算!参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。

    虽然C++编译在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。 但反过来在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:5||0的值为“真”,即为1。

5、四、位运算符

(需要说明的是,对于有符号数,在右移时,符号位将随同移动。当操作数为正数时,最高位为0,而为负数时,最高位为1。最高位是补0或补1取决于编译系统的规定。)

c++之赋值语句&运算符和表达式

6、五、运算的简写

1、在C++语言中,有一些运算可以简写,如下表所示。

2、算术运算符、关系运算符、逻辑运算符和赋值运算符的优先级如下:

3、关系运算符的结合性为:自左至右。

  根据以上优先级和结合性,计算出以下表达式的结果(假设a=3,b=2,c=1)

         a>b           表达式为真,所以表达式的值为1

        (a>b)==c       表达式为真,所以表达式的值为1

        b+c<a          表达式为假,所以表达式的值为0

        d=a>b          a>b为真,所以d的值为1

       f=a>b>c        a>b为真,结果为1,1>c为假,所以f的值为0

c++之赋值语句&运算符和表达式

c++之赋值语句&运算符和表达式

7、六、常用库函数

c++之赋值语句&运算符和表达式

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢