李洪强-C语言7-C语言运算符
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语言运算符的更多相关文章
- 李洪强漫谈iOS开发[C语言-043]-判断较早日期
李洪强漫谈iOS开发[C语言-043]-判断较早日期
- 李洪强漫谈iOS开发[C语言-043]-练习
李洪强漫谈iOS开发[C语言-043]-行李重量计算价格
- 李洪强漫谈iOS开发[C语言-042]-简单计算器
李洪强漫谈iOS开发[C语言-042]-简单计算器
- 李洪强漫谈iOS开发[C语言-041]-计算月份天数
李洪强漫谈iOS开发[C语言-041]-计算月份天数
- 李洪强漫谈iOS开发[C语言-040]-switch case
李洪强漫谈iOS开发[C语言-039]-switch case 补充:
- 李洪强漫谈iOS开发[C语言-039]-剪刀石头布
李洪强漫谈iOS开发[C语言-039]-剪刀石头布
- 李洪强漫谈iOS开发[C语言-038]-if else if语句
李洪强漫谈iOS开发[C语言-038]-if else if语句
- 李洪强漫谈iOS开发[C语言-037]-if else 语句
李洪强漫谈iOS开发[C语言-037]-if else 语句
- 李洪强漫谈iOS开发[C语言-010] - C语言简要复习
// // main.m // 05 - 简要复习 // // Created by vic fan on 16/7/13. // Copyright © 2016年 李洪强. All rig ...
- 李洪强漫谈iOS开发[C语言-009] - C语言关键字
// // main.m // 04 - C语言关键字 // // Created by vic fan on 16/7/12. // Copyright © 2016年 李洪强. All r ...
随机推荐
- C++类编程(一)const的使用
设计类时,考虑以下五点 1.构造函数初始化列表 2.函数该不该加const 3.参数传递尽量考虑用引用传递,考虑加不加const 4.返回用不用引用 5.数据尽量放在private,函数尽量放在pub ...
- shell脚本去重的几种方法
测试文件 [root@bogon ~]# cat >test jason jason jason fffffjason 按 Ctr + D保存 1.sort -u [root@bogon ~]# ...
- (转)SQL SERVER的锁机制(一)——概述(锁的种类与范围)
锁定:通俗的讲就是加锁.锁定是 Microsoft SQL Server 数据库引擎用来同步多个用户同时对同一个数据块的访问的一种机制. 定义:当有事务操作时,数据库引擎会要求不同类型的锁定,如相关数 ...
- Windows下配置Apache服务器并支持php
php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php.Python.Java甚至asp等服务端语言,要 ...
- ImageView中XML属性src和background的区别
background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸. src是图片内容(前景),bg是背景,可以同时使用. 此外:scaleType只对sr ...
- jQuery信息提示工具jquery.poshytip (转载)
转载地址:http://www.helloweba.com/view-blog-123.html Poshy Tip是一款非常友好的信息提示工具,它基于jQuery,当鼠标滑向链接时,会出现一个信息提 ...
- 在MVC3或asp.net中修改KindEditor实现上传图片时添加水印
主要修改两个文件:image.js和upload_json.ashx文件. 一.修改image.js文件 打开kindeditor/plugins/image目录下的image.js文件,找到 '&l ...
- hdu 4006 优先队列 2011大连赛区网络赛F **
签到题都要想一会 #include<cstdio> #include<iostream> #include<algorithm> #include<cstri ...
- loj 1108(spfa判负环)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26823 思路:题目的意思是求出所有的能够到达负环的点.负环很好求, ...
- MATLAB信号与系统分析(三)——连续信号与系统的复频域分析及MATLAB实现
一.系统的拉普拉斯变换和反变换 1.MATLAB函数 F=laplace(f) %求拉氏变换 f=ilaplace(F) %求拉氏反变换 2.例子 clear all;clc;close all f= ...