[C++]算术运算符和表达式

算术运算符和表达式

一、算术运算符和算术表达式

+    -   *    /    %  

用算术运算符连接起来的式子是算术表达式

两个整数相除结果为整数             1/2=0           5/2=2

整数才可求余,余数的符号与左边数的符号相同。

3%2=1      -3%2=-1         3%-2=1      -3%-2=-1      8%4=0

二、优先级与结合性

()      *        /       %           +       —

三、强制转换类型

(类型名)(表达式)

(double)  a             (int) (x+y)          (int) 6.2%4=2

在强制类型运算后原变量不变,但得到一个所需类型的中间变量。

如:int  x;

    float   y=5.8;   x=5

    x=(int)y;        y=5.8

y的值没有改变,仍是单精度浮点型

四、自增、自减运算符  (难点)          ++      --

i=6;   i++;   i=i+1     i=7                 ++i;      i=i+1    i=7

i=6;   i--;      i=i-1     i=5          --i ;    i=i-1     i=5

 

举例:

int   i, j;

i=3;

j = ++i;         i=4  j=4  

++在前, 先运算,后赋值

 

int   i, j;

i=3;

j = i++;       i=4 j=3

++在后, 先赋值,后运算

 

1)自增、自减运算符只能用于变量,不可用于常量和表达式

因为表达式在内存内没有具体空间,常量所占的空间不能重新赋值

3++      (x+y)++      (-i)++

2)结合方式自右至左,优先级最高,向右取最大

-i++         -(i++)              i+++j         (i++) +j

若i=3, j=2   (i++) +j  等于5  i=4,  j=2

 

赋值运算符和赋值表达式

 

"="左边必须是变量名。

若“ = ” 两边变量类型不同,在赋值时要进行类型转换。

转换原则:根据左边变量的类型转换。

少字节à多字节

1)若多字节变量为unsigned ,则转换后多余字节补零。

short int  a=-1;

unsigned  long   b;

b=a;

 

2)若多字节变量为有符号型,则转换后扩展少字节的最高位。

short int  a=-1;

long   b;

b=a;

 

多字节->少字节

低位照搬

 

复合的赋值运算符

a+=3         a=a+3

x*=y+3           x=x*(y+3)

x/=x-4             x=x/(x-4)  

x+=y      x=x+y

i+=j--     i=i+(j--)

赋值表达式

a=b=5 ;             b=5       a=5

"="的结合性为自右至左

a=12;      a+=a-=a*a;

 

 

关系运算符和关系表达式

关系运算符(比较运算)

     <   >  <=   >=     = =      !=

1. = = 与 =

     a=5;    赋值运算           a= =5;判断是否相等

2.<  >  <=   >= 的优先级大于= =   !=

3. 算术运算符的优先级大于关系运算符的优先级

关系表达式:用关系运算符将表达式连接起来称为关系表达式。其值非真即假。在C++语言中,用非0代表真,用0表示假。关系表达式的结果只有两个,真为1,假为0。

 

逻辑运算符  

1. 运算符             与&&       或 ||               非!

 

注意:

1.优先级:!à&&à| |

           !->算术->关系->逻辑->赋值->逗号

2.作为条件,所有非0值均为真;作为结果,只有0或1两种。  

          5>3 && 2 || 8<4-!0

3.不可写为  1<x<10     应为:1<x && x<10

4.当前面的表达式可以得出整个表达式的结果时,不必再求后面的表达式。

a&&b&&c  当a为0时,表达式为0,不必求b与c。

a||b||c      当a为1时,表达式为1,不必求b与c。

sizeof()运算符

sizeof()运算符是一个单目运算符,用于计算某一个操作数类型的字节数。其格式为:

sizeof(<类型>)

sizeof(int)   //其值为4

sizeof(float) //其值为4

sizeof(double)  //其值为8

sizeof(char)  //其值为1

 

逗号运算符和逗号表达式

表达式1,表达式2,表达式3,…,表达式n

顺序求解,结果为最后一个表达式的值,并且优先级最低。

 

各类数值型数据间的混合运算

整型、实型、字符型数据间可以混合运算。

在进行运算时,不同类型的数据要先转换成同一类型的数据再进行运算。

转换规则如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值