C语言操作符的使用

这是一篇关于c语言操作符的介绍

在C语言中,操作符主要包括算数操作符,移位操作符,位操作符,赋值操作符,单目操作符,逻辑操作符,条件操作符,逗号表达式,下标引用,函数调用和结构成员。

1.算数操作符:

+   -   *   /    %
例:
定义整型变量 a=4 b=2
运算操作符含义运算操作结果
+加法操作符a+ba和b的和为 6
-减法操作符a-ba和b的差为 2
*乘法操作符a*ba和b的乘积为 8
/除法操作符a/ba和b的商为2
%求余运算符a%ba除以b的余数为0

注:
除了%操作符之外,其他几个操作符既可以用于整型也可以用于浮点型,而%操作符的两个操作数必须为整数,返回的是整出之后的余数。

2:移位操作符

  <<      左移操作符
  
  >>      右移操作符

<1> : 左移操作符 <<

移位规则:

左边抛弃,右边补0

<2>: 右移操作符 >>

右移运算分为逻辑右移和算数右移两种

逻辑右移规则:左边补0,右边抛弃

算数右移规则:左边用原值的符号位补充,右边抛弃

例如:
int num=1

它在内存中存储的补码为32个1

11111111111111111111111111111111
(注:整型在内存中的存储为原数值的补码。其中正数的原码,补码,反码都相同,都为其原码,负数的补码为反码加1.)
例如:

int a=1

原码:00000000000000000000000000000001

补码:00000000000000000000000000000001

反码:00000000000000000000000000000001

int b= -1

原码:10000000000000000000000000000001

补码:1111111111111111111111111111111111110(符号位不变)

反码:1111111111111111111111111111111111111(补码加1)

逻辑右移:

左边补0,最右边的1丢弃

01111111111111111111111111111111

算数右移:

左边用原符号位补充,最右边的1丢弃

11111111111111111111111111111111

这里给出一段代举例:

在这里插入图片描述
它的结果输出是5,这里需要特别注意:

<1>:移位操作符不能直接赋值改变变量,如需要改变变量应这样输入:a>>=1;

<2>:左移操作相当于*2,右移操作相当于/2;

3:位操作符

 位操作符包括:按位与(&),按位或(|),按位异或(^).

例如:int a=13 int b=5

a 00000000000000000000000000001101

b 00000000000000000000000000000101

a&b 00000000000000000000000000000101

a|b 00000000000000000000000000001101

a^b 00000000000000000000000000001000

注:操作数必须为整数

4:赋值操作符

赋值操作符包括:=  +=  -=  *=  /=  %=  >>=  <<=  &=  |=  ^=

例:

int a=10;

a=a+10;

a+=10;(复合赋值,与a=a+10得到的结果是相同的。)
其余运算符算法相似。

5:单目操作符

单目操作符包括:逻辑反操作(!)  负值(-)  正值(+)   取地址(&)
操作数的类型长度(sizeof)   对一个数的二进制按位取反(~)
前置--,后置--(--)  前置++,后置++(++) *,(类型)等

需要注意的是:
<1>:&是取地址,%p打印地址
<2>:sizeof()是操作符,不是函数
<3>:后置++(–)的用法为先引用,后运算;前置++(–)的用法为先运算,后引用。

这里给出一段代码举例:
在这里插入图片描述

<4>:*在这里是间接访问操作符,主要和指针相关
<5>:(类型)是强制类型转换操作符,例如强制将浮点型数转换为整型数。
这里给出一段代码举例:
在这里插入图片描述

6:关系操作符

关系操作符包括:大于(>)  小于(<)  大于等于(>=)  
小于等于(<=)  不等于(!=)  等于(==)

7:逻辑操作符

 逻辑与(&&)   逻辑或(||)

例如:

1&2————>0 按位与

1&&2————>1 逻辑与

1|2————>3 按位或

1||2————>1 逻辑或

8:条件操作符

exp1?exp2:exp3

判断exp是否为真,若为真,则exp2;若为假,则exp3.

举例解释一下上述语句

在这里插入图片描述
当a=10时,通过if的条件判断后,b=3;
当-10时,b=-3;

如果用上述语句即可达成:

两种方法得到的结果是一样的

9:逗号表达式

用逗号隔开的多个表达式

例如;
exp1,exp2,exp3,…,expn
注:
逗号表达式从左到右依次执行,整个表达式的结果是最后一个表达式的结果。

这里给出一段代码来举例:
在这里插入图片描述
结果输出是c=13。

10:下标引用,函数调用和结构成员

(1)[ ]

操作数:一个数组名+一个索引值;

例如:

int arr[20]; //创建数组

arr[10]; //使用下标引用操作符

[ ]的两个操作数是arr和9。

(2) ()

函数调用操作符

接受一个或多个操作数,第一个操作数是函数名,剩余的操作数是传递给函数的参数。

(3)访问一个结构体成员

.结构体.成员名     ->结构体指针->成员名















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值