c语言操作符总结

C语言操作符总结:
分类:算术操作符,移位操作符,位操作符,赋值操作符,复合操作符,单目操作符,
关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用、函数调用和结构成员。
一、算术操作符——“+,-,*,/,%”*
注:
(1)%(求余)操作符的两个操作数必须为整数,返回的是整除之后的余数。而其他操作符可以用于整数和浮点数。
(2)/(除法)操作符的两个操作数若都为整数,执行整数除法。而只要有浮点数就执行浮点数除法。
二、移位操作符——“右移>> , 左移<<”
(1)左移操作符移位规则:左边抛弃,右边补0
(2)右移操作符移位规则:
①逻辑移位:左边用0填充,右边抛弃,无符号数据移位遵守逻辑移位
②算术移位:左边用原该值的符号位填充,右边抛弃,有符号数据移位遵守算术移位
警告:对于移位操作符,不要移动负数位,这是标准未定义的。
三、位操作符(按比特位)——“&,|,^,~”
(1)&:按位与(遇0则0)
(2)|:按位或(遇1则1)
(3)^:按位异或(相同为0,相异为1)
(4)~:按位取反(遇0变1,遇1变0)
注:位操作符的操作数必须是整数。
四、赋值操作符——“=”
该操作符可以连续使用,但不建议这样使用,注意区分等号“==”
五、复合操作符——“+=,-=,=,/=,%=,>>=,<<=,&=,|=,^=,”
作用只是简化代码,仅此而已
六、单目操作符——“!,+,-,&,sizeof,~,--,++,,(类型)”
(1)!:逻辑反操作
(2)+:正值
(3)-:负值
(4)&:取地址
注:数组名——是一个数组中首元素的地址
&数组名——是指整个数组的地址
(5)sizeof:操作数的类型长度,以字节为单位
注:①sizeof是一个操作符,它不是一个函数。
②sizeof内部表达式不参与运算。
③源文件要变成可执行文件需要通过编译和执行两个过程,sizeof操作符是在编译时就可以得知数的类型的字节数。
④ sizeof( a ) / sizeof( a[ 0 ] )可以求一个数组的大小,在哪里定义数组就在哪里使用该表达式。
(6)~:对一个数的二进制按位取反
(7)--: ①前置--:先减1,后赋值
②后置--:先赋值,后减1
(8)++: ①前置++:先加1.后赋值
②后置++:先赋值,后加1
(9):间接访问操作符(解引用操作符):可以决定访问多大的空间 。
(10)(类型):强制类型转换
七、关系操作符——“>,>=,<,<=,!=,==”
八、逻辑操作符——“&&,||”
(1)&&:逻辑与(两个同时为真则为真)
(2)||:逻辑或(两个同时为假则为假)
注:区分按位与&和按位或|
①int i=0,a=0,b=2,c=3,d=4;
i = a++&&++b&&d++;
因为a++值为0,0逻辑与任何数都为0,所以后面的表达式不再计算,仍为原来的值。
②int i=0,a=0,b=2,c=3,d=4;
i = a++||++b||d++;
因为++b值为1,1逻辑或任何数都为1,所以后面的表达式不再计算,仍为原来值。
九、条件操作符(三目操作符)——“exp1 ? exp2 : exp3 ”
意思是表达式1是否成立?成立的话执行表达式2,否则执行表达式3。
十、逗号表达式——“exp1, exp2, exp3, …expN ”
用逗号隔开的多个表达式,从左到右依次执行,整个表达式的结果是最后一个表达式的结果。
十一、下标引用,函数调用和结构成员 ——“[],(),.,->”*
(1)下标引用操作符[]
操作数:一个数组名+一个索引值
(2)函数调用操作符()
接受一个或多个操作数,第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
(3)访问一个结构体的成员
①结构体.成员名
②结构体指针->成员名

原文地址:https://blog.51cto.com/14235507/2376263

时间: 2024-08-01 01:53:06

c语言操作符总结的相关文章

c语言操作符优先级

运算符 结合性 () [] -> . 自左至右 ! ~ ++ -- - (type) * & sizeof 自右至左 * / % 自左至右 + - 自左至右 << >> 自左至右 < <= > >= 自左至右 == != 自左至右 & 自左至右 ^ 自左至右 | 自左至右 && 自左至右 ||  自左至右 ?: 自右至左 = 自右至左 , 自左至右 1.优先级最高的并不是真正意义上的运算符,包括数组下标,函数调用操作符和

被C语言操作符优先级坑了

今天有一个枚举的题目的代码是这样的: 重点在于maxXor这个函数的实现,枚举两个数字,其中maxr保存了最大值的 i 异或 j , 可是这个程序执行结果大大出乎意外-_-. 然后就把 i 异或 j 的结果临时保存在int,进行比较,程序正确的执行了.原来是被操作符优先级坑到了.位操作的优先级比比较操作符的优先级更低. #include <map> #include <set> #include <list> #include <cmath> #includ

关于C语言操作符的总结

整理了一些C语言中的操作符,简单介绍了一下部分重要操作符,也算学习操作符的一些收获吧. 一.C语言操作符分类算数操作符.移位操作符.位操作符.赋值操作符.单目操作符.关系操作符.逻辑操作符.条件操作符二.操作符介绍1.算数操作符:+ - / %a.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数b.对于/操作符,如果两个数都为整数,执行整数除法.而只要有浮点数执行的就是浮点数除法c.%操作符的两个操作数必须为整数,返回的是整除之的余数2.移位操作符 <<左移 >>右移a.左

C语言操作符

   在这里,为初学C语言的小伙伴们介绍几种基本的操作符.希望对大家的学习有所帮助!   1.算数操作符      "+(加)","-(减)","*(乘)","/(除)","%(取余)",在此着重介绍"%"取余操作,简单举 个实例,12%5=2,但是,要注意符号的两侧必须为整形数据. 2.移位操作符 "<<(左移)"">>(右移)&q

C语言操作符学习总结

c语言中关于操作符部分的学习,可以主要分为两个部分:操作符和表达式. 这里首先是列举各种操作符,在C语言中,一般主要的操作符有这么几种:算数操作符,移位操作符,位操作符,赋值操作符,单目运算符,关系操作符,逻辑操作符,条件操作符,逗号表达式以及比较特殊的几个操作符. 算数操作符 算数操作符,主要是:+ , -,  *,  /, % 这些都是比较常见的,不光是在C语言中学习到,事实上从小我们学习数学都常用到他们,所以这里没什么多说的,就是有几点注意事项: 除了取模运算,也就是取余数的%操作符,其他

C语言操作符自我总结

1.算数操作符:+? ? -? ?*? ? /? ? ?% 注意点: %号 只能用于整数2.除数不能为0 /号,如果两数都是整数,结果为整数:如果有一个数为小数,结果为小数. 整型提升:凡是针对char,short型的数学运算,此时都会隐式转换为?int?型(因为CPU运算一般以整型为基本单位)算数转换: long doubledouble 8个float 4个unsigned long intlong int 4个long long 8个unsigned intint 4个short 2个字节

摘:C语言操作符优先级

操作符 描        述 用    法    示    例 结果类型 结合性 是否控制求值顺序 () 聚组 (表达式) 与表达式同 N/A 否 () 函数调用 rexp(rexp, ..., rexp) rexp L-R 否 [] 下标引用 rexp[rexp] lexp L-R 否 . 访问结构成员 lexp.member_name lexp L-R 否 -> 访问结构指针成员 rexp->member_name lexp L-R 否 ++ 后缀自增 lexp++ rexp L-R 否

编程学习篇之C语言操作符

一.算术操作符.首先了解一下算术标识符都有哪些:+.-../.%.这些运算符都是最基础的操作符,不做过多介绍.但要注意"%"只能用于整型.二.移位操作符.移位操作符有两种:>>(右移操作符).<<(左移操作符).特别注意右移操作时分为两种情况:1.算术右移:2.逻辑移位.算术右移情况指的是:二进制数有正负之分,补位时要注意符号位:逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可.注意:1.移位操作符不能直接赋值改变变量.如果需要改变变量需要这样输入:a

c语言操作符小结

算数操作符(+,-,,/,%)+,-,,正常运算就好,但"/"和"%"较为特殊需要注意!"/":1)当该符号两端数据类型都为int时,输出类型为int .若符号两端数据类型不同时,则按精度小的类型进行计算.精度大的数被隐式类型转换(编译器自动转换)为精度小的类型.2)当除数为一个常数0时,编译器汇报编译错误.当除数为一个一个变量,变量的值为0时,编译通过但运行时会错."%":1)该符号只针对int 整型有效.2)当符号右端为常