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

简介: 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;
}
目录
相关文章
|
1月前
|
算法 程序员 C语言
C语言位运算
C语言位运算
21 0
|
1月前
|
Linux C语言
Linux系统下C语言的队列操作
Linux系统下C语言的队列操作
23 0
|
1月前
|
算法 C语言
【专业解码】递归求和在C语言中的神操作!只需1秒,你也能轻松开挂
【专业解码】递归求和在C语言中的神操作!只需1秒,你也能轻松开挂
|
1月前
|
编译器 C语言
嵌入式C语言变量、数组、指针初始化的多种操作
嵌入式C语言变量、数组、指针初始化的多种操作
32 0
|
2天前
|
C语言
条件操作符和逻辑操作符(C语言零基础教程)
条件操作符和逻辑操作符(C语言零基础教程)
|
4天前
|
C语言
C语言中逻辑表达式的深入探讨
C语言中逻辑表达式的深入探讨
11 0
|
4天前
|
存储 C语言
C语言中字符串的引用与数组元素操作
C语言中字符串的引用与数组元素操作
12 0
|
1月前
|
算法 C语言
C语言双目算数运算
C语言双目算数运算
17 0
C语言双目算数运算
|
1月前
|
存储 C语言
C语言结构体操作
C语言结构体操作
15 0
|
1月前
|
C语言
C语言的逻辑表达式
C语言的逻辑表达式
44 1