四、C语言基础——C语言所有运算符详解

运算符

(1)、在C语言中,运算符是一种用于执行各种操作的特殊符号。
(2)、根据操作对象个数和功能,运算符可以分为单目运算符、双目运算符、三目运算符。
(3)、不同的功能分类,如算术运算符、关系运算符、逻辑运算符、位运算符、移位运算符、赋值运算符、递增递减运算符、逗号运算符和三目运算符等。

一、算术运算符

(1)、算术运算符用于执行基本的算术操作,包括加法、减法、乘法、除法和取余等。
(2)、常见的算术运算符包括:

  • +(加)
  • -(减)
  • *(乘)
  • /(除-取整)
  • %(取余)。

例如,可以通过以下方式使用算术运算符:

int a = 2;
int b = 3;
int c = a + b; // 加法
int d = a - b; // 减法
int e = a * b; // 乘法
int f = a / b; // 除法(取整)
int g = a % b; // 取余

除此之外,算术运算符还可以进行复合操作。
如:

  • +=(加并赋值)
  • -=(减并赋值)
  • *=(乘并赋值)
  • /=(除并赋值)
  • %=(取余并赋值)等。

二、关系运算符

(1)、关系运算符用于比较两个值之间的关系,其结果只有两种情况:真(非0)和假(0)。
(2)、常见的关系运算符包括:

  • (大于)>
  • (小于) <
  • (等于)==
  • (不等于)!=
  • (大于等于)>=
  • (小于等于)<=

例如,可以通过以下方式使用关系运算符:

int a = 2;
int b = 3;
int c = a > b; // 大于
int d = a < b; // 小于
int e = a == b; // 等于
int f = a != b; // 不等于
int g = a >= b; // 大于等于
int h = a <= b; // 小于等于

需要注意的是,在C语言中,0被视为假,非0被视为真。

三、逻辑运算符

(1)、逻辑运算符用于执行逻辑操作,包括逻辑与、逻辑或和逻辑非等。
(2)、常见的逻辑运算符包括&&(逻辑与)、||(逻辑或)和!(逻辑非)。
例如,可以通过以下方式使用逻辑运算符:

char ch = 'a';
int result = ('a' <= ch) && (ch <= 'z'); // 判断字符ch是否是小写字母
int a = 2;
int b = 3;
int c = (a == 2) || (b > 4); // 使用逻辑运算符进行条件判断
int d = !(a == b); // 使用逻辑非运算符对条件取反

四、位运算符

(1)、位运算符用于对二进制位进行操作,包括按位与、按位或、按位异或、按位取反等。
(2)、的位运算符包括&(按位与)、|(按位或)、^(按位异或)和~(按位取反)。
例如,可以通过以下方式使用位运算符:

unsigned int a = 0x0F; // 二进制为 00001111
unsigned int b = 0x30; // 二进制为 00110000
unsigned int c = a & b; // 按位与操作
unsigned int d = a | b; // 按位或操作
unsigned int e = a ^ b; // 按位异或操作
unsigned int f = ~a; // 按位取反操作

五、移位运算符

(1)、移位运算符用于对二进制位进行左移或右移操作,其中左移将二进制位向左移动指定的位数,右移将二进制位向右移动指定的位数。
(2)、常见的移位运算符包括<<(左移)和>>(右移)。

  • 左移位:
    向左移动多少位,就在最后添加多少个0
    x向左移动n位,等价于 x* 2^n

    例:

int a = 4;
int b = a<<2;
b == 16
  • 右移位:
    向右移动多少位,就把末尾的多少位舍弃
    x向右移动n位,等价于x / 2^n
    例:
int a = 16;//00010000
int b = a>>2;//00000010
b == 4;//1000

19==10011>>2 == 100 == 4
  • 负数的移位:

    (1)、左移:向左移动多少位,就在最后添加多少个0,符号位不变
    例:

    -4 << 2 == -16
    

    (2)、右移: 向右移动多少位,就把末尾的多少位舍弃,在符号位后添1
    例:

    -16 >> 2 == -4
    

例如,可以通过以下方式使用移位运算符:

int a = 0x0F; // 二进制为 00001111
int b = a << 2; // 左移2位,结果为 00111100
int c = a >> 3; // 右移3位,结果为 00000001

六、赋值运算符

(1)、赋值运算符用于将一个值赋给一个变量。
(2)、包括简单赋值、加法赋值、减法赋值、乘法赋值、除法赋值、取余赋值等。
(3)、常见的赋值运算符包括

  • =(简单赋值)
  • +=(加法赋值)
  • - =(减法赋值)
  • *=(乘法赋值)
  • /=(除法赋值)
  • %=(取余赋值)

例如,可以通过以下方式使用赋值运算符:

int a = 2;
int b = 3;
a += b; // 等价于 a = a + b;
a -= b; // 等价于 a = a - b;
a *= b; // 等价于 a = a * b;
a /= b; // 等价于 a = a / b;
a %= b; // 等价于 a = a % b;

注意:
赋值运算符的左值不能是常量:1 = 2; //error 1是一个整型常量

七、递增递减运算符

(1)、递增递减运算符用于对变量的值进行自增或自减操作。
(2)、可分为前缀递增/递减和后缀递增/递减。
(3)、前缀递增/递减表示先执行自增/自减操作,再进行表达式的运算;
(4)、后缀递增/递减表示先进行表达式的运算,再执行自增/自减操作。
(5)、常见的递增递减运算符包括++(递增)和–(递减)。

  • 前++:先运算,后赋值
  • 后++:先赋值,后运算

例如,可以通过以下方式使用递增递减运算符:

int a = 5;
int b = ++a; // 前缀递增,a先自增,然后赋值给b,a和b都为6
int c = a--; // 后缀递减,a先赋值给c,然后自减,a为5,c为6

八、逗号运算符

(1)、逗号运算符用于在表达式中多个操作之间进行顺序执行,并返回最后一个操作的结果。将最后的表达式的结果作为最终结果,其他表达式结果舍弃。
(2)、逗号运算符的优先级最低,可以用于将多个表达式组合成一个表达式。
例如:

int a = 1, b = 2, c = 3;
int result = (a++, b++, c++); // 逗号运算符将a、b、c的自增操作合并为一个表达式,并返回c自增后的值3给result
int a = 2;
int b = (a, a+2, 3+4);
//结果:b == 7;

九、条件运算符(三目运算符)

(1)、条件运算符用于根据条件的真假选择不同的值进行赋值或表达式的计算。一般用于简单的选择判断。
(2)、一般形式:
<表达式> ? <表达式1> : <表达式2>
(3)、执行过程:
执行第一个表达式,如果表达式的结果为真,执行表达式1,如果表达式结果为假,则执行表达式2。

例如:

int a = 5;
int b = 10;
int max = (a > b) ? a : b; // 判断a和b的大小,将较大的值赋给max

十、地址运算符

(1)、用于获取变量的地址,常用于指针操作和传递内存地址等场景。
(2)、符号:& 单目运算符
(3)、功能:求指定内容的地址

int a = 2;
&a --> 获取变量a的地址

十一、sizeof运算符

(1)、sizeof运算符用于获取变量或类型的大小(字节数)。
(2)、可以通过sizeof(type)来获取类型的大小,或者sizeof(expression)来获取表达式的结果在内存中的大小。
例如:

int a = 5;
int size_of_int = sizeof(int); // 获取int类型的大小,通常为4字节
int size_of_a = sizeof(a); // 获取变量a在内存中的大小,通常为4字节

(3)、常见数据类型大小

  • int – 整型 – 4字节
  • char – 字符型 – 1字节
  • float – 单精度浮点型数据 – 4字节
  • double – 双精度浮点型数据 – 8字节
  • short – 短整型 – 2字节
  • long – 长整型 – 4字节(32bit)、 8字节(64bit)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小羊客栈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值