C语言学习-day7

今天学操作符

操作符有算数操作符:+-*/%

移位操作符:<< >>

位操作符:&按位余 |按位或 ^按位余或

赋值操作符:*=等

单目操作符

开始演示,代码如下

int main()

{  

    int a = 9 / 2;

         printf("%d\n", a);

    return 0;

}

这里9除以2并非4.5,首先打印后面的%d是打印一个整数,这里得换成%f,然后int a是把a设定为了整数,这里得换成float,注意,到这也没有结束,9/2这个公式会被默认为整数除法得到的也是除法,所以把分子分母中任意一个数换成浮点数就可以变成浮点数除法,代码如下

int main()

{  

    float a = 9 / 2.0;

         printf("%f\n", a);

    return 0;

}

打印结果如下

%操作符是取余数

<<移位操作符其实就是把二进制位移动一位的操作,比如2的二进制是00010,左移后变成00100,这个十进制就是4。代码与结果如下

单目操作符,比如a+b的+有两个操作数,叫双目操作符。单目操作符就只有一个,比如!

int main()

{  

    //0表示假,非0表示真,!取反就是把真变成假,假变成真

    int a = 10;

   

         printf("%d\n", !a);

    return 0;

}

经典用法为

int main()

{  

    if(a)

         //如果a为真,如何如何

    if(!a)

         //如果a为假,如何如何

    return 0;

}

int main()

{  

    int arr[10] = { 0 };

    printf("%d\n", sizeof(arr));

    printf("%d\n", sizeof(arr[0]));

    int sz = sizeof(arr) / sizeof(arr[0]);

    printf("%d\n", sz);

    return 0;

}

得到如下

这是sizeof操作符的应用。

~是按位取反,按二进制位取法,把所有二进制位中数字,1变0,0变1.整数在内存中存储的是补吗,一个整数的二进制表示有三种:原码、反码、补码。

针对负数计算如下,比如-1:

原码:10000000000000000000001(第一位符号位加上31位2进制数)

反码:11111111111111111111110(除符号位全取反)

补码:11111111111111111111111(反码的二进制序列+1)

针对正整数,原码,反码,补码相同。

int main()

{  

    int a = 0;

    printf("%d\n", ~a);

    return 0;

}

得到结果如下,也可推算,0的二进制位为00000000000000000000000000000000(32个0),取反为11111111111111111111111111111111.这是-1的补码,所以0做~后得到-1.

++和--操作符的应用。

前置++:先++后使用。

后置++:先执行b=a,再执行a++操作。

&& 逻辑与

|| 逻辑或

0为假,a和b同时为真,则a&&b为真,真&&真=真,真&&假=假

或||则是,真||假=真,假||假=假

条件操作符(三目操作符)

exp1?exp2:exp3

exp1如果成立,exp2计算,整个表达式的结果是exp2的结果

exp1如果不成立,exp3计算,整个表达式的结果是exp3的结果

代码演示如下

int main()

{  

    int a = 0;

    int b = 3;

    int max=0;

   

    max=a > b ? a : b;

    printf("%d\n", max);

    return 0;

}

运行结果如下

逗号表达式:依次执行,隔开的操作

下标引用操作符:如arr[10],引用时arr[5]这个[]

函数调用操作符,比如printf()的()

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值