21 11 12 C语言学习总结(操作符)

一 操作符

1 算术操作符 + - * / %

当/两端都是整数时,执行整数除法,两端只要有一个浮点数则执行浮点数除法

double ret=10/3.0;
printf("%lf",ret);

% 的两端必须是整数,返回值也是整数

2 移位操作符

移位操作符的操作数只能是整数

<<左移操作符

#include<stdio.h>
int main()
{
    int a=5;
    int b=a<<2;
    //把a在内存中储存的二进制位向左移动2位
    printf("%d\n",b);
    return 0;
}

>>右移操作符

算术右移:右边丢弃,补原来的符号位

逻辑右移:右边丢弃,补0

算术右移还是逻辑右移取决于编译器

一般的编译器为算术右移

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

 移位时不要移负数位

3 位操作符         &按位与 |按位或 ^按位异或

#include<stdio.h>
int main()
{
    int a=3;
    int b=-5;
    int c=a&b;
    int d=a|b;
    int e=a^b;
    printf("%d %d %d\n",c,d,e);
    return 0;
}

4 赋值操作符      =

int a=10;
a=100;

 左值放在=左边,一般是一块空间

右值放在=右边,一般是一个值或一块空间内容

复合赋值符        += -= *= /=

#include<stdio.h>
int main()
{
    int a=0;
    a+=10;
    printf("%d",a);
    return 0;
}

5 单目操作符

只控制一个操作数

! 反逻辑操作符

#include<stdio.h>
int main()
{
    int a=0;
    int b=5;
    printf("%d %d\n",!a,!b);
}

 0的逻辑反为1,正数的逻辑反为0

- 负值

#include<stdio.h>
int main()
{
    int i=0;
    int flag=1;
    for(i=0;i<10;i++)
    {
        printf("%d ",i*flag);
        flag=-flag;
    }
    return 0;
}

& 取地址

#include<stdio.h>
int main()
{
    int a=0;
    printf("%p",&a);
    return 0;
}

 

sizeof 计算操作数的类型长度(以字节为单位)

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

 

~ 按位取反

#include<stdio.h>
int main()
{
    int a=0;
    printf("%d\n",~a);
    return 0;
}

 

++ --

前置++(--),先++(--),后使用

#include<stdio.h>
int main()
{
    int a=10;
    int b=++a;
    printf("a=%d b=%d\n",a,b);
    return 0;
}

int main()
{
    int a=10;
    int b=--a;
    printf("a=%d b=%d\n",a,b);
    return 0;
}

 后置++(--),先使用,后++(--)

#include<stdio.h>
int main()
{
    int a=10;
    int b=a++;
    printf("a=%d b=%d\n",a,b);
    return 0;
}

 

 

#include<stdio.h>
int main()
{
    int a=10;
    int b=a--;
    printf("a=%d b=%d\n",a,b);
    return 0;
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

这是个奇迹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值