C语言自增减、逻辑运算、位运算、位移运算及三目运算操作

你崩溃到凌晨,她和他睡到自然醒。。。

----  网页云热评

 

一、自增自减操作

#include <stdio.h>

int main() {

    int val = 0, val1 = 0;

    ++val;      //前操作

    printf("val是%d\n", val);

    val++;      //后操作

    printf("val是%d\n", val);

    val1 = ++val;   //前自增表达式作为数字使用的时候是自增以后的数字

    printf("val是%d,val1是%d\n", val, val1);

    val1 = val++;   //后自增表达式作为数字使用的死后是自增以前的数字

    printf("val是%d,val1是%d\n", val, val1);

    val++ + ++val;  //结果不确定,不要在一条语句里对同一个变量多次进行自增或自减计算

    return 0;

}

运算结果:

val是1

val是2

val是3,val1是3

val是4,val1是3

 

二、逻辑操作符

int val = 0;

    printf("!8是%d\n", !8);

    printf("3 < 7 < 5是%d\n", 3 < 7 < 5);   //先计算前面的<,后计算后面的<,所以结果是真

    printf("3 < 7 && 7 < 5是%d\n", 3 < 7 && 7 < 5);

    1 || ++val;  //因为||具有短路特征,前面的1可以决定整个逻辑表达式的结果,所以没有进行后面的自增计算

    printf("val是%d\n", val);

    0 && ++val;  //因为&&具有短路特征,前面的0可以决定整个逻辑表达式的结果,所以没有进行后面的自增计算

    printf("val是%d\n", val);

    system("pause");



运算结果:

!8是0

3 < 7 < 5是1

3 < 7 && 7 < 5是0

val是0

val是0

 

三、位运算

#include <stdio.h>

int main() {

    printf("3 & 5是%d\n", 3 & 5);//0与任何数与运算都是0

    printf("3 | 5是%d\n", 3 | 5);//1与任何数或运算都是1

    printf("3 ^ 5是%d\n", 3 ^ 5);//异或运算,相同为0,不同为1

    return 0;

}



运行结果:

3 & 5是1

3 | 5是7

3 ^ 5是6



//变量内容交换

#include <stdio.h>

int main() {

    int val = 3, val1 = 7, tmp = 0;

   

 /*tmp = val;

    val = val1;

    val1 = tmp;*/



    val ^= val1;

    val1 ^= val;

    val ^= val1;



    printf("val是%d, val1是%d\n", val, val1);

    return 0;

}

运算结果:

val是7, val1是3

 

四、位移操作

#include <stdio.h>

int main() {

    printf("10 << 2是%d\n", 10 << 2); //左移2位相当于乘4

    printf("10 >> 2是%d\n", 10 >> 2);//右移2位相当于除4取整

    return 0;

}

运行结果:

10 << 2是40

10 >> 2是2

 

 

五、三目运算

#include <stdio.h>

int main() {

    int val = 0;

    printf("请输入一个数字:");

    scanf("%d", &val);

    val = val >= 0 ? val : 0 - val;//val>=0为条件,如果真,返回val,若果假,返回0-val

    //val >= 0 ? val = val : val = 0 - val;   不要在问号后使用赋值操作符

    printf("绝对值是%d\n", val);

    return 0;

}

 

欢迎关注公众号:顺便编点程

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

web安全工具库

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

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

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

打赏作者

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

抵扣说明:

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

余额充值