C语言_3:运算符

1.运算符

1.1算数运算符

C语言提供的算数运算符:+、-、*、/、%、++、--如:(float、double不能取余)

#include<stdio.h>
int main()
{
    int a=15,b=8,c;

     c = a+b;
    printf("c=%d \n",c);

     c = a-b;
    printf("c=%d \n",c);

     c = a*b;
    printf("c=%d \n",c);

     c= a/b;
    printf("c=%d \n",c);

     c = a%b;
    printf("c=%d \n",c);

    return 0;
}

1.2关系运算符

C语言的关系运算符:大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)、不等于(!=)。

例如: 

#include<stdio.h>
int main()
{
    int a=8,b=9;

    if(!((a-1)>=b))
        printf("ture \n");
    else
        printf("faLse \n");

    return 0;
}

int a=5,b=6;   
a>(b-1)          结果为0
(a+1)==b         结果为1
a>=(b-2)         结果为1
a<100            结果为1
(a+3)<=b         结果为0
a!=(b-1)         结果为0

1.3逻辑运算符

运算符功能说明举例
逻辑反!(x==0)
&&逻辑与x>0&&x<10
||逻辑或y<10||x>5

逻辑运算符“!”的运算如下

运算量结果
10
01

例如

int k=8;
!(k==0)        结果为1
!((k-8)==0)    结果为0
!(k<=0)        结果为1

运算符“&&”运算符的运算规律如下:短路特性-逢0截止

左运算量右运算量结果
111
100
010
000

例如:

int x=5,y=18;
(x>=5)&&(y<20)        结果为1
((x+1)>=0)&&(y<17)    结果为0
((x-8)>=0)&&(y<17)    结果为0

逻辑或“||”运算符的运算规律如下:短路-逢1截止

左运算量右运算量结果
111
101
011
000

例如:

#include<stdio.h>
int main()
{
    int a=8,b=9;

    if(((a-1)>=b)|| b++)
        printf("ture \n");
    else
        printf("faulse \n");
        printf("%d %d \n",a,b);

    return 0;
}

运算符功能说明举例
~位逻辑反-a
&位逻辑与a&b
|位逻辑或a|b
^位逻辑异或a^b
>>右移动a<<1
<<左移动b>>1

1.4.1 位运算取反

#include<stdio.h>
int main()
{
    unsigned char x=0x17,y;
    y=~x;

    printf("%#x \n",y);
    return 0;
}

运行结果: 

1.4.2 位逻辑与运算

#include<stdio.h>
int main()
{
    unsigned char x = 0126,y =0xac,z;
    z =x&y;
    printf("%#x \n",z);
    return 0;
}

运行结果为

1.4.3位逻辑运算或

#include<stdio.h>
int main()
{
    unsigned char x=076,y=0x19,z;
    z=x|y;
    printf ("%#x \n",z);
    return 0;
}

运行结果:

1.4.4 位逻辑运算异或^

#include<stdio.h>
int main()
{
    unsigned char x=75,y=0173,z;
    z=x^y;
    printf ("%#x \n",z);
    return 0;
}

运行结果:

1.4.5 位逻辑左移动

#include<stdio.h>
int main()
{
    unsigned char x=0x04,z;
    z=x<<3;
    printf ("%#x \n",z);

    z=x<<2;
    printf ("%#x \n",z);

    z=x<<1;
    printf ("%#x \n",z);
    return;
}

运算结果:

1.5 赋值运算符

赋值运算符“=”,其运算的一般形式如下:

<左值表达式>=<右值表达式>

赋值复合运算符其运算的一般形式如下:

<变量><操作符>=<表达式>

C语言的赋值运算符其运算的一般形式如下:

运算符功能说明
+=加赋值复合运算符
-=减赋值复合运算符
*=乘法赋值复合运算符
/=除法赋值复合运算符
%=求余赋值复合运算符
&=位与赋值复合运算符
|=位或赋值复合运算符
^=位异赋值复合运算符
>>=位右赋值复合运算符
<<=位左赋值复合运算符
#include<stdio.h>
int main()
{
    int count ,sum;
    count =0,sum=0;
    while(count++ <100)
    {
        sum+=count;//sum=sum+count
    }
    printf("sum=%d \n",sum);
    return 0;
}

 运行结果:

1.6特殊运算量

1.6.1 条件运算符

"?:"是三目运算符,其运算的一般形式是:

<表达式1>?<表达式2>:<表达式3 >

#include<stdio.h>

int main()
{
    int x=70,y=25;

    y=++x>70?100:0;
    printf("x=%d  y=%d \n",x,y);
    return 0;
}

运行结果: 

1.6.2 逗号运算符

逗号运算符最终的值是由表达式最后一个决定的

#include<stdio.h>
int main()
{
    float x=10.5,y=0.8,z=0;
    z=(x+=5,y=x+0.8,z=x+y);
    printf("x=%f y=%f z=%f \n",x,y,z);
    return 0;
}

运算结果:

1.6.3sizaof运算符

运算符的一般形式:sizeof(类型或变量名)

只针对数据类型,而不针对变量

可以查看当前环境下数据类型所占字节数大小

#include<stdio.h>
int main()
{
   int a=1;
   long b=2;
   long  long c=3;
   printf("%d %d %d \n",sizeof(a),sizeof(b),sizeof(c));
    return 0;
}

运行结果

1.6.4C运算符的优先级

例如:

int x=1,y=0,z=0;
x++ && y++ || ++z;//结果为1

!(x+1>0) && y++ || ++z;//结果为1

x+=y==z,y=x+2,z= x+y+z>0;//x为2,y为4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值