C语言运算符

一、算术运算

C语言一共有34种运算符,包括常见的加减乘除运算。

①. 加法:+ 还可以表示正号

②. 减法:- 还可以表示负号

③. 乘法:* 非数学意义上的X

④. 除法:/  注意1/2的值为0而非0.5

⑤. 取余(模运算):两个整数相除之后的余数(注意两边都必须是整数,带符号只和左值有关)

注意点:

①. Int a=10.8;//数据精度丢失警告。结果为10——自动类型转换

②. Int a=(int)10.8;//无警告。把10.8强制转换为整型——强制类型转换

③. Double c=10.6+6//结果为16.600000。在计算机中,拿两个数值进行运算,则运算符两边的数值需要类型相同,如果不同则进行自动类型提升。即把6转为6.000000后再参与运算。

④. 参与运算的两个数是什么类型,那么其结果就是什么类型。int a=10/3结果为3,double b=10/3结果为3.000000;double c=10.0/3结果为3.333333。要求精确值可以进行强制类型转换。double d=(double)3/2把3转换为double类型变为3.000000,之后2进行自动类型提升转变为2.000000参与运算,结果为1.500000。也可以写成3/(double)2。这种情况需要注意与对整体进行强制转换的区别 double e=(double)(3/2)是先计算3/2的值为1再对1进行强制类型转换,结果为1.000000。

二、赋值运算

(一)简单赋值

Int a=10+5;a=b=10;//从右向左,左边不能为常量

(二)复合赋值

a=a+5;=>a+=5;

a=a*5;=>a*=5;

a+=5*6+4;=>a=a+(5*6+4)

提示:预算顺序取决于两点:一是运算符的优先级,二是结合的顺序。

三、自增自减运算

Int a=10;

把a的值加1有四种方法:

①. a=a+1;

②. a+=1;

③. a++;

④. ++a;

简单区分a++和++a。

Int b;

Int a=10;

b=++a; //a==11,b==11;a先把值加1为11,再赋值给b

b=a++; //a==11,b==10;a先把值10复制给b,a自己再加1为11

b=(a++)+(++a);  //a1==10,a2==12,b==22

b=(++a)+(a++);  //a1==11,a2==11,b==22

注意:int d=10++;//这种写法是错误的,因为对常量进行自加和自减没有任何意义。

四、Sizeof

作用:用来计算变量,常量或者是一种数据类型所占的内存字节数。

基本形式:sizeof(变量名|常量|数据类型),完成之后返回一个值。

①. Sizeof 变量|常量

②. Sizeof (变量|常量)

③. Sizeof (数据类型)

注意:数据类型一定要用括号括起来,不能写成sizeof 数据类型这样的形式。

五、关系运算符

(一)条件判断

默认情况下。在程序中写出的每一句正确的代码都会被执行,但很多时候我们需要在某个条件成立的情形下才执行某一段代码,如登录操作,这种情况可以使用条件语句来完成。

(二)真假

在C语言中,条件成立称为“真”,条件不成立称为“假”。

C语言规定,任何数值都有真假性,任何非零值都为真,只有0才为假,无布尔类型。

(三)关系比较

关系运算的结果只有两种情况,如果条件成立就为真,值为1,如果条件不成立就为假,值为0。有6种运算符,分别是:(1)<  (2)<=  (3) >  (4) >=  (5)==  (6)!=

(四)使用注意

①. ==和!=优先级相等,其他四个关系运算符的优先级相等,且前者的优先级低于后者。如2==3>1 应该先计算3>1

②. 关系运算符中,若优先级相同,则“从左往右”结合。如4>3<2,先计算4>3

③. 关系运算符中的优先级小于算术运算符。如3+4>8-2 相当于(3+4)> (8-2)

④. 练习5!=4+2*7>3==10 先计算5!=18>3==10,5!=1==10,1==10,假

六、逻辑运算符

逻辑运算的结果只有两个:真(0)和假(1)

①. 与   &&   条件1&&条件2 只有的那个条件1和条件2都成立时,才为真否则为假。

②. 或   ||    条件1 ||条件2  当条件1或条件2中有一个成立时就为真,都不成立时为假。

③. 非   !  !条件   取反

注意:逻辑运算符在进行运算时,只要能够确定整体的真假性,后面的条件就不再进行而是直接忽略。

Int a=b=10;

Int c=(a>5)&&(++b>=11);//此时a==10,b==11,c==1

Int c=(a<5)&&(++b>=11);//此时a==10,b==10,c==0

提示:在进行逻辑运算时,如果搞不清楚各个符号的优先级,可以使用()。

七、三目运算符

双目:需要两个值参与运算

单目:1个数值参与运算  如!5

三目:需要3个数值参与

格式:条件?数值1:数值2

先判断?前的条件,若条件成立则返回数值1,若条件不成立则返回条件2。

要求比较a和b的值,把数值大的存入到c中  c=a>b?a:b

比较a,b,c三个数的值,把最大的值存入到d中

Int  abmax=(a>b)?a:b;

d=abmax>c:abmax:c;

李洪强-C语言7-C语言运算符的更多相关文章

  1. 李洪强漫谈iOS开发[C语言-043]-判断较早日期

    李洪强漫谈iOS开发[C语言-043]-判断较早日期

  2. 李洪强漫谈iOS开发[C语言-043]-练习

    李洪强漫谈iOS开发[C语言-043]-行李重量计算价格

  3. 李洪强漫谈iOS开发[C语言-042]-简单计算器

    李洪强漫谈iOS开发[C语言-042]-简单计算器

  4. 李洪强漫谈iOS开发[C语言-041]-计算月份天数

    李洪强漫谈iOS开发[C语言-041]-计算月份天数 

  5. 李洪强漫谈iOS开发[C语言-040]-switch case

    李洪强漫谈iOS开发[C语言-039]-switch case 补充:

  6. 李洪强漫谈iOS开发[C语言-039]-剪刀石头布

     李洪强漫谈iOS开发[C语言-039]-剪刀石头布

  7. 李洪强漫谈iOS开发[C语言-038]-if else if语句

    李洪强漫谈iOS开发[C语言-038]-if else if语句

  8. 李洪强漫谈iOS开发[C语言-037]-if else 语句

    李洪强漫谈iOS开发[C语言-037]-if else 语句

  9. 李洪强漫谈iOS开发[C语言-010] - C语言简要复习

    // //  main.m //  05 - 简要复习 // //  Created by vic fan on 16/7/13. //  Copyright © 2016年 李洪强. All rig ...

  10. 李洪强漫谈iOS开发[C语言-009] - C语言关键字

    // //  main.m //  04 - C语言关键字 // //  Created by vic fan on 16/7/12. //  Copyright © 2016年 李洪强. All r ...

随机推荐

  1. 开发Web Service的几种方式

    本文作者在学习使用Java开发Web Service(不包括Restful)时,由于不知道Java有这么多框架支持开发Web Service一度陷入迷惘,不知道这些框架各有 什么不同,各有什么优缺点. ...

  2. MySQL数据库索引的4大类型以及相关的索引创建

    以下的文章主要介绍的是MySQL数据库索引类型,其中包括普通索引,唯一索引,主键索引与主键索引,以及对这些索引的实际应用或是创建有一个详细介绍,以下就是文章的主要内容描述. (1)普通索引 这是最基本 ...

  3. object-c面向对象1

    ---恢复内容开始--- 类,对象,方法,属性. 类是object-c一种重要的数据类型,是组成object-c程序的基本要素.object-c的类声明和实现包括两个部分:接口和实现部分. @inte ...

  4. 73 [面试题]交换一个整数的二进制表示的奇偶位(swapOddEvenBits)

    [本文链接] http://www.cnblogs.com/hellogiser/p/swap-odd-even-bits.html [分析] 假定一个数字是8位数,设为ABCDEFGH ABCDEF ...

  5. 【转】自动实时监控Windows2003服务器终端登录并发邮件和发短信通知

    记得以前管理的一批windows服务器,一些开源程序做的web站点总会遭到入侵.然而就想找找看有没有办法可以知道服务器有没有被入侵.服务器在什么时候登陆过,如果登陆马上发邮件通知,感觉这种问题肯定有人 ...

  6. iOS 中的第三方库管理工具

    xcode没有android studio中的gradle进行第三方库管理,但是有第三方的库管理工具CocoaPods,https://github.com/CocoaPods/CocoaPods/w ...

  7. Cocos2d 中的Sprite大小调整问题

    以前用UIImageView,比如  UIImageView *view = [[UIImageViewalloc] initWithImage:[UIImageimageNamed:@"b ...

  8. Cocos2d-x 学习资料推荐

    最近在看Cocos2d-x ,官网的资料太少了,下面推荐一些比较好的教程,不断更新中. 1. cocos2d-x高级开发教程 如果你懂得objective-c 那么一定要看看这本书,这里面有许多C++ ...

  9. iOS block 声明时和定义时的不同格式

    今天写程序时,在实现一个block时总提示格式错误,对比api的block参数格式,没发现错误.后来查阅了资料,发现这两个格式是不同的! 具体格式见下方 NSString * (^testBlock) ...

  10. Greedy:Stripes(POJ 1826)

    新生物 题目大意:给你一堆数,两两结合,答案为2*sqrt(x1*x2),问组合成一个数时,最小的量? 超级无敌大水题,排序或者用堆都可以,反正就是优先组合大的,让根号一直把大数开根降低整体的大小 # ...