个人总结C语言操作符

来源:互联网 发布:淘宝大学披肩老师 编辑:程序博客网 时间:2024/06/06 07:18
C语言操作符
操作符是一种表示对数据进行某种运算处理的符号。
C语言编译器通过识别这些操作符完成各种算术运算 逻辑运 位运算等运算。

算术运算符
1)基本算术运算符
基本算术运算符包括双目的“+”“-”“*”“/”四则运算和“%”运算符,以及单目的“-”(负号)运算符。
说明:
1.基本算术运算符优先级与数学中一致。
2.“-”运算符可以当做负号运算符使用 用作运算符时只要一个操作数,运算结果时取操作数的负值。
3.“%”求余运算 也称为求模运算,即求两个数相除之后的余数.求模运算要求两个操作数只能是整型数据,返回后的是整除后的余数。

2)自增、自减运算符 “++”“--”
1.自增运算符是单目运算符,操作数只能是 整型变量分为前置和后置两种方式:
++i,在使用i之前,先使i的值增加1(称之为先增后用)
i++,在使用i之后,再使i的值增加1(称之为先用后增)
2.自减运算符与自增运算符一样也是单目运算符,操作数也只能是整型变量,也分为前置和后置两种方式:
--i,在使用i之前,先使i的值减1(称之为先减后用)
i--,在使用i之后,再使i的值减1(称之为先用后减)
说明:
自增自减运算符常用于循环语句,使循环控制变量自动加、减1,或用于指针变量,使指针向下递增或向上递增一个地址。

关系运算符
关系运算实际上就是比较运算,将两个值进行比较,根据两个值比较运算的结果给出一个逻辑值(即真假值)。
C语言提供的6种关系运算符 “<”“<=”“>”“>=”“==”“!=”
说明 关系运算符运算结果为0 或1,他们的值可作为算术值处理。
e.g: int x;
 x = 100;
 printf("%d\n", x > 20);//这个程序运行结果为1


逻辑运算符
逻辑运算就是比较运算,这种运算是将两个操作数的逻辑值进行比较,根据两个逻辑值运算结果得出一个逻辑值(真假值)。
C语言提供的3种逻辑运算符:&&、||
|| && 表示逻辑运算,||表示或者的意思,&& 表示并且的意思,例如 33>44 || "abcd"=="abcd",其结果是逻辑值true或false
说明计算逻辑表达式时 &&和||时一种短路运算,即在计算的过程中只要表达式的值能确定,就不在运算下去了。
e.g : exp1&&exp2,若exp1=0 则可确定表达式的值为0,不再计算exp2。


条件运算符
条件运算符实际上也是比较运算,这种运算将两个以上的操作数运算后的逻辑值进行比较,根据结果的逻辑值(真假值)进行判断并决定执行的顺序。
形如:exp1?exp2:exp3     若exp1值为真,则条件表达式取表达式2的值,否则取表达式3的值。
说明:
1)其中exp1 必须为逻辑表达式。
2)条件运算符是C语言中唯一的三目运算符。
3)条件运算符优先于赋值运算符。
4)条件运算符的结合方向为“从左向右”。
逗号运算符
逗号运算提供一个顺序求值运算形式,相当于某操作数的一个接力运算。
逗号运算符只能用于逗号表达式中 形如:
表达式1,表达式2  含义是先计算表达式1 再计算表达式2,并以此作为整个表达式的值。
e.g : "a=3*4,a*5" 先求解a=3*4得到a=12,然后求解a*5得到60,即整个逗号表达式的值是60。

赋值运算符
赋值运算是一种在程序设计中应用频繁的操作,通过赋值运算可以访问存储单元中的内容,让变量得到初始值,完成表达式的计算。
赋值运算用在赋值表达式中,用来计算“=”右边表达式的值并存入“=”左边的变量中。
复合赋值运算符:
在基本赋值运算符“=”之前加上任意双目运算符及位运算符可构成赋值运算符,又称带运算的赋值运算符。
复合运算符的分类:
算术复合赋值运算符有5种 :
-=,+=,*=,/=,%=
位符合赋值运算符有5种:
<<=,>>=,&=,^=,|=

位运算符
位运算只能用于整型数据,即把整型数据看成固定的二进制序列,然后对这些二进制序列进行按位运算。
位运算符包括位逻辑运算符4种:&,|,^,~;位移位运算符2种:<<,>>;
1)位逻辑运算
1.按位取反运算。按位取反运算符:~
2.按位与运算。按位与运算符:&
按位取反运算规则当两个操作数对应位都是1时,该位运算结果为1,否则为0。
与1按位与 如果为1 最低位为1;如果为0最低位为0.(可以用来实现判断一个整数二进制码中有几个1)
3.按位或运算符。按位或运算符:|
按位或运算规则 当两个操作数的对应位都是0时,该位运算结果为0;否则为1。
 
4.按位异或运算符。按位异或运算符:^
按位异或运算规则当两个操作数的对应位相同时,该为运算结果为0,否则为1。
可用来实现:不使用中间变量交换两个变量的值。

2)移位运算
1.向左移位运算。 向左移位运算符:<<
向左移位运算可以用来实现快速乘2运算。
2.向右移位运算。向右移位运算符:>>
向右移位运算可以用来实现快速除2运算。
说明:
移位时 值不会发生变化
逻辑左移=算数左移,右边统一添0
逻辑右移,右边丢弃,左边统一添0
算数右移,左边添加的数和符号有关
e.g :
1010101010,其中[]位是添加的数字
逻辑左移一位:010101010[0]
算数左移一位:010101010[0]
逻辑右移一位:[0]101010101
算数右移一位:[1]101010101

其他的运算表达式
1.取地址运算
取地址运算:&
取地址运算可以得到变量的地址,其操作数只能是变量。
2.求字节运算
求字节运算符:sizeof
求字节运算的操作数可以是类型名,也可以是变量,表达式,运算后可以求得相应类型或数据所占的字节数,即返回变量或类型修饰符的字节长度。
说明 sizeof用于数据类型时,数据类型必须用圆括号括起来;用于变量时,可以不用圆括号括起来。
e.g:
sizeof(int)  而sizeof(f)和sizeof f等价。
3.括号运算
圆括号运算符 ()
圆括号运算一方面用用来改变运算的优先级顺序,圆括号在运算符优先级内最优先;另一方面可以用来强制进行数据类型转换。
e.g: int(x+y)  可将x+y的值强制转换为整型。
4.下标运算符[]
下标运算符 主要用于数组中,用于得到数组的分量下标值。

操作符属性
 对于复杂表达式求值的影响有三个因素
1.操作符的优先级
2.操作符的结合性
3.是否控制求值顺序

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕八个半月打喷嚏头疼怎么办 20岁打喷嚏漏尿怎么办 鼻炎犯了不停打喷嚏怎么办 鼻炎犯了不停打喷嚏流鼻涕怎么办 感冒鼻痒怎么办小窍门 腰扭了屁股也疼怎么办 小三把房子过户怎么办 小三把房子卖了怎么办 打印机ip地址变了怎么办 电脑ip地址错误不能上网怎么办 修改了注册表电脑无法启动怎么办 香水喷到衣服上有印怎么办 家里一股猫的味道怎么办 干菊花里面有虫怎么办 安装时显示程序已关闭怎么办 电脑一直重启开不了机怎么办 应用安装在sd卡打不开怎么办 安装ps打不开安装包怎么办 安装好的软件打不开怎么办? win10系统语言修改不了怎么办 一个月婴儿吵夜怎么办 玩游戏一直闪退怎么办 钱站一直闪退怎么办 win7重装连不上网怎么办 笔记本屏幕横过来了怎么办 3D贴图丢了怎么办 百度文库安装后手机打不开怎么办 win7系统不带usb驱动怎么办 手机网页上的pdf打不开怎么办 网页下载pdf后缀是.do怎么办 ps界面太小怎么办win10 ps软件打不开程序错误怎么办 ps打开后 未响应怎么办 ps图层无法解锁怎么办 ie8浏览器电脑不能用怎么办 系统要ie6.0才能打开怎么办 2g手机内存不够怎么办 2g运行内存不够怎么办 手机运行内存2g不够怎么办 手机无法加载程序秒退怎么办 电脑账户密码忘记了怎么办