2.4表达式简介+数据类型转换

表达式和数学公式一样,是由运算符和操作数组成的。以下就是简单的表达式:

d=a*b-123.4;

2.4.1赋值运算符

“=”就是赋值运算符,由至少两个操作数组成。

C语言除了一次指定一个数值给一个变量外,还能够同时指定同一个数值给多个变量,例如

int a,b,c;
a=b=c=100;

2.4.2算数运算符

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int a=12,b=3;
	printf("a+b=%d\n",a+b);
	printf("a*b=%d\n",a*b);
	printf("a/b=%d\n",a/b);
	printf("a%%b=%d\n",a%b);/*重复%字符才会打印出*/
	return 0;
}

2.4.3 关系运算符

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int a=9,b=8;
    printf("%d\n",a>b);
    return 0;
}
>>>1           /*c语言中真为1*/

2.4.4逻辑运算符

(1).&&:两边都为真才为真

(2).||:只要一边为真就为真

(3).! :not将表达式的值反向输出

2.4.5自增与自减

int a=5,b;
b=++a;
c=a++;
printf("%d,%d",a,b); /*++a就是先进行a=a+1的操作再b=a,所以输出6,6*/
printf("%d,%的,a,c);/*先c=a,再a++*/

2.4.6位运算符

(1).&都为1时为1

                 二进制                                            十进制

       0   0    0    1    1     0    1              =              13

      0     1   1     1    0     0    1             =               57

      0     0    0     1    0     0    1                      13&57=9

(2).|    当其中一个为1时新位置为1

(3) ^  当一个为1一个为0时为1

(4).~对数值的位值取1补码,即位值为1时,新位值为0,或为0时新位值为1

(5).>>2位移

       0         0         0      1      1      0     1       =13

      0          0         0       0       0      1     1      0       1      =3         右移两位,超出的去掉左边多出的补0

(6).<<n左移

                  13     =          0       0       0       1         1         0         1

           52=   0       0        0        1       1       0        1          0         0     左移n位。左边超出的去掉,右边少的补0

2.4.7运算符优先级

           ()             !                        - (负号)          ++            --             *               /             %

          +              - (减法)             <<                    >>             >=           <             <=           ==            

            !=            &                        ^                       |                &&          ||               ?:            =           

2.5  数据类型转换

2.5.1   自动类型转换

以下是自动转换类型的顺序

double    >      float      >       unsigned   long   >     long       >       unsiged   int    >    int

2.5.2    强制类型转换

int a,b,agv;
agv=(float)(a+b)/2;    /*将a+b的值转换成浮点数
(float)agv=(a+b)/2;     /*不合法的指令*/

/*强制类型如下*/
#include<stdio.h>
#include<stdlib.h>
int main{
    int score1=80,score2=90,score3=70;
    int sum=0;
    sun=score1+score2+score3;
    printf("%d\n",sum/3);
    printf("%f\n",(float)sum/3);

    return 0;
}
>>>80

>>>80.000000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值