C语言 操作符

目录

1 操作符

2 算术操作符

3 移位操作符

4 位操作符

5 赋值操作符

6 单目操作符

7 关系操作i符

8 逻辑操作符

9 条件操作符

10 逗号表达式


1 操作符

        C语言中有多种操作符,用于执行各种操作和计算。以下是一些常用的C语言操作符:

  • 算术操作符:用于执行基本的算术运算,如加法+、减法-、乘法*、除法/、取余%等。
  • 关系操作符:用于进行比较操作,返回一个布尔值(0表示假,非0表示真),如相等==、不相等!=、大于>、小于<、大于等于>=、小于等于<=等。
  • 逻辑操作符:用于进行布尔运算,如逻辑与&&、逻辑或||、逻辑非!等。
  • 赋值操作符:用于将一个值赋给一个变量,如赋值=
  • 位操作符:用于对二进制位进行操作,如按位与&、按位或|、按位异或^、按位取反~、左移<<、右移>>等。
  • 条件操作符(三目运算符):用于根据条件选择不同的值,语法为条件 ? 结果1 : 结果2
  • 自增和自减操作符:用于对变量进行自增或自减操作,分别为++--
  • 指针操作符:用于操作指针变量,如取地址&、取值*
  • 成员操作符:用于访问结构体或联合体的成员,使用.
  • 条件操作符:用于判断条件,并根据条件结果来执行代码块。
  • 逗号操作符:用于连接多个表达式,以逗号分隔。

     

#include <stdio.h>

int main() {
    int a = 7 / 2;
    int b = 7 % 2;      // 取模
    int c = (int)3.14;      //强制转化
    if (1 && 0)
    {
        printf("逻辑与");
    }
    if (1 || 0)
    {
        printf("逻辑或");
    }
    int d = (a > b ? a : b);      //三目运算符
    printf("%d\n", d);

    //printf("%d\n", arr1[8]);
    return 0; 
}

        以上只是C语言中的一些常用操作符,实际上C语言中还有其他一些特殊的操作符,用于执行更复杂的操作。操作符的优先级和结合性也是需要注意的,可以使用括号来明确优先级和执行顺序。

2 算术操作符

注意:除法分为整数除法(7/2=1)和小数除法(7.0/2=3.5)(小数除法要求必须有一个是小数)

        % 取模  7%2 = 1

3 移位操作符

        左移操作符<< 左边丢弃,右边补0,左移可以×2

        右移操作符>>右边丢弃,左边补原符号位(算数移位)(或0,逻辑移位),一般是算术右移,取决于编译器,基本都是算术右移。

二进制:分为原码,反码、补码。正数的原码、反码、补码相同,原码等于二进制,int类型,四个字节,一个字节8个比特位,总共有32个二进制位。最高位为符号位0表示正数,1表示负数,得到负数的原码。负数原码最高位不变,其它位取反,表示负数的反码,给反码加1得到负数的补码。整数在内存中存的是补码。移位移动的是补码,

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
    
int main() 
{
    int a = 3;
    int b = a >> 1;     // 移位不能写负数
    int c = a << 1; 
    printf("%d ", b);
    printf("%d ", c);
    return 0;
}

4 位操作符

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
    
int main() 
{
    // &按位与,|按位与,^按位异或,负数是补码注意
    int a = 3;
    int b = 0;    
    int c = a & b;      // 0
    int d = a | b;      // 3
    int e = a ^ b;      // 3
    printf("%d ", c);   // %d可以打印有符号整数
    printf("%d ", d);
    printf("%d ", e);
    return 0;
}

5 赋值操作符

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
    
int main() 
{

    int a = 3;
    int b = 5;    
    int c = 10;
    a = b = c + 1;
    printf("%d ", a);   // 连续赋值
    printf("%d ", b);   // 为 11  11 
    return 0;
}

6 单目操作符

7 关系操作i符

8 逻辑操作符

        不是二进制比较

9 条件操作符

        三目操作符

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
    
int main() 
{
    int a = 3;
    int b = 0;    
    int c = 0;
    (a > 5) ? (b = 3) : (b = -3);
    c = (a > 5) ? 3 : -3;
    printf("%d ", b);   // -3
    printf("%d ", c);   // -3
    return 0;
}

10 逗号表达式

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
    
int main() 
{
    int a = 3;
    int b = 0;    
    int c = (b = a+b,a+1,b+1);
    printf("%d ", c);   // 4
    return 0;
}
  • 22
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值