hello,各位小伙伴们,大家好!我是槿凉。 今天呢又是C语言知识点分享的一天,那么今天来讲一讲C语言操作符的具体内容,好啦,咋们废话不多说直接上干货。
算术操作符
+ - * / %
移位操作符
>> <<
位操作符
& ^ |
赋值操作符
= += -= *= /= &= ^= |= >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
逻辑操作符
&& 逻辑与
|| 逻辑或
条件操作符
exp1 ? exp2 : exp3
逗号表达式
exp1, exp2, exp3, …expN
下标引用、函数调用和结构成员
[] () . ->
那么在我们的C语言日常使用中,大概有这么十大类常用的操作符,今天就挑几个比较常用的给大家讲解一下具体用法,如果小伙伴们对其他的操作符还有不了解的,可以评论区或者私信我都是可以的!
二.具体用法
1.算术操作符:这其中就包括 加 减 乘 除 取余五大操作,非常的简单,这里给大家简答的演示一下代码,大家可以去VS2019或VS2022上面自己亲身体验一下,这样效果会很棒。
#include<stdio.h>intmain() { inta=1; intb=2; intc=a+b; intc=a-b; intc=a*b; intc=a/b; intc=a+b; printf("%d", c); return0; }
2.移位操作符:移位运算符其实就是将整数写成二进制的形式,通过移位运算符可以改变01数字,从而改变数字的值,这里就不具体的讲解!
3.位操作符:& ^ |,同移位运算符一样,这里不做具体讲解!
4.赋值运算符: 简单来说就是对我们定义的变量赋值。赋值从右往左看,将等号右边的值赋给等号左边的变量,这里我们上代码具体演示一下。
inta=1;//给变量a赋值为1intb=2; //给变量b赋值为2a+=2;//其实就等价于a=a+2;b-=3;//这里等价于b=b-3;//同理,*=,/=,也是同样的运算
5.单目运算符:即只有一个操作数的运算,&和*这两个操作符会在指针里面具体讲到。
首先我们来看一下逻辑反操作!的用法: (C语言中规定0为假,非0位真)
#include<stdio.h>intmain() { inta=1;//给变量a赋值为1if (a)//如果a为真执行下面的语句 { printf("haha"); } if (!a)//如果!a执行下面的语句 { printf("nice"); } return0; }
结果:可以看到打印的是haha,说明a为真,若a为0,那么!a为真,将会打印nice.
2.sizeof的用法:这里我们求数组arr中元素的个数,我们知道sizeof的作用是求操作数的长度(以字节为单位),那么sizeof(arr)的长度应该就是整个数组的长度,再除以数组中某个元素的长度比如arr[0],最后的结果就是数组中元素的个数。
我们来看代码:
#include<stdio.h>intmain() { intarr[10] = { 0 }; intsz=sizeof(arr) /sizeof(arr[0]); printf("数组arr的长度是%d",sz); return0; }
结果:因为数组的长度是40(字节),一个元素长度为4(字节),所以数组有10个元素。
3.-- 和++的用法:我们知道--和++可以放在变量的前置或后置,放在前置表示这个变量要先++ 或--然后在使用,而--和++放置在变量的后面那么这个变量就要先使用,然后在--或++,我们来看具体的例子。
#include<stdio.h>intmain() { inta=2; intb=3; intc=a++; printf("%d", c); return0; }
逻辑运算符:&&和||,类似于数学里面的并和或的意思,&&是左右两个表达式的值都为真才执行,而||是有一个表达式的值为真就执行,看代码具体实现。
#include<stdio.h>intmain() { inta=1; intb=9; if (a&&b) { printf("日日卷,高薪来"); } return0; }
结果:因为a和b的值都为真,所以执行
条件操作符:<exp1 ? exp2 : exp3>尖括号里面的运算符的意思就是,exp1是一个表达式,若为真整个表达式的值就是exp2,若为假,整个表达式的值就为exp3。来看代码演示。
#include<stdio.h>intmain() { inta=7; intb=9; intc= (a>b?3 : 5); printf("%d", c); return0; }
结果:因为a=7不大于b=9,所以输出5.