c语言——操作符详解

1.操作符分类:

算数操作符

移位操作符

位操作符

赋值操作符

单目操作符

关系操作符

逻辑操作符

条件操作符

逗号表达式

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

2.算数操作符

+    -     *    /    %

1.除了%操作符以外,其他的几个操作符可以作用于整数和浮点数

2.对于 / 操作符如果两个操作数都为整数,执行 整数除法。而只要有浮点数执行的就是浮点数除法。

3.%操作符的两个操作数必须为整数,返回的是整除之后的余数。

3.移位操作符

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

注意:移位操作符只能操作整数,负数也不要那么操作,c语言没定义

3.1左移操作符

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

3.2右移操作符

移位规则:分两种

第一种:逻辑移位:左边用0填充,右边丢弃

第二种:算术移位:左边用原该值的符号位填充,右边丢弃

4.位操作符

位操作符有:
&     按位与

|      按位或

^     按位异或

这些操作数字必须是整数

  5.赋值操作符

赋值操作符是一个很棒的操作符,他可以让你不满意的值,重新变成你满意的值

int a=10;  // 不满意
a=20;  //满意

复合赋值符

+=

-=

*=

/=

%=

>>=

<<=

&=

|=

^=

比如:

int a=10;
a=a+10;
a+=10;//复合赋值

6.单目操作符

6.1单目操作符介绍

!  逻辑反操作

-     负值

+    正值

&    取地址

sizeof     操作数的类型长度(字节为单位)

~     取一个数的二进制按位取反

--     前置,后置

++     前置,后置

*     间接访问操作符(接近用操作符)

(类型)    强制转换类型

7.关系操作符

>

>=

<

<=

!=

==

在编程中,记住,=是赋值,==才是等于

8.逻辑操作符

&&    逻辑与

||      逻辑或

1&2------->0

1&&2----->1

1|2-------->3

1||2------->1

9.条件操作符

exp? exp2 : exp3

10.逗号表达式

exp1,exp2,exp3,....expN

逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果

11.下标引用,函数调用和结构成员

[ ]下标引用

(  )函数调用

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

 12.表达式求值

隐式类型转换

c的整形算术总是至少以缺省整形类型的精度来进行的。

为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整形,这种称为整形提升。

char a,b,c

a=b+c;

b和c先变成整形再进行加法运算

int main()

{
char a= 0xb6;
short b= 0xb600;
int c=0xb6000000;
if(a==0xb6)
printf("a");
if(b==0xb600)
printf("b");
if(c==0xb6000000)
printf("c");
return 0;
}
//打印c

例子中a,b要进行整形提升,a和b整形提升后为负数,c不需要。

所以输出结果是c

13.算数转换

如果某个操作符的各个操作数属于不同类型,那么除非其中一个操作数转换为另一个操作数类型,否则操作无法进行。下面的层次称为寻常算术转换。

long    double

double

float

unsigned long int

long int

unsigned int

int

float f=3.14;

int num=f;

存在隐式转换,会有精度丢失

14.操作符的属性

复杂表达式的求值有三个影响的因素:
1.操作符的优先级

2.操作符的结合性

3..是否控制求值顺序

两个相邻的操作符先执行哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。

如果我们写出的表达式不能通过操作符的属性来确定唯一 的计算路径,那这个表达式就是存在问题的。

大家阅读完这篇文章,相信大家对操作符也有了一定的了解了

我们下次再见吧~~~

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值