【C-运算符】
一、基本运算符
(1)赋值运算符:=
- a=2002; //将值2002赋给变量a,动作从右到左
- 赋值运算左边必须指向一个存储位置(变量名——指针)
(2)加法、减法运算符:+、—(二元或双目运算符)
- printf("%d",4+20);
- 被加的值(操作数)可以是变量也可以是常量
(3)符号运算符:+和—(一元)
- a=-12;b=-a; //把值12赋给b.(只需要一个操作数)
(4)乘法运算符:*
- cm=2.54*inch;//用2.54的值乘以变量inch,然后将结果赋给cm.
(5)除法运算符:/
- for=12.0/3.0; //左边的值被右边的值除,把值4.0赋给for
- 截尾:整数除法小数部分被丢弃。5/4的结果是1.(C99趋零截尾)
- 混合类型:运算之前将整数转化为浮点数
(6)取模运算符:%
- 用于整数运算,对浮点数运算无效
- a%b=a-(a/b)*b
- 取模运算的结果符号与第一个操作数的符号一致
(7)增量和减量运算符:++和——(只影响一个变量)
- 前缀和后缀模式的区别在于值的改变这一动作发生的准确时间是不同的。
- a++:先使用a,然后将它的增加;++a:先将a的值增加,然后再使用它。
- shoe=3.0;while(shoe<10){...++shoe;}和shoe=2.0;while(++shoe<9){...}等价。
- 替换方式b=++i; ### ++i;b=i;//如果第一行使用了i++,b的结果仍然相同。
(8)sizeof运算符和size_t类型:#、sizeof以字节为单位返回操作数的大小。#、允许为一个类型创建一个别名(typedef double real;real a;//用real替代dobule)。
二、优先级
- ()>+-(一元运算符)>*/%>+-(二元运算符)>= +、-(一元)和=结合性从右向左。
- y=6*12+5*20;除了两个运算符共享一个操作数的情况以外,C不保证复杂表达式的哪个部分首先被求值。
- y=2;n=3;nextnum=(y+n++)*6; //nexnum=(2+3)*6=5*6=30;n=4;
三.表达式和语句
(1)表达式:表达式是运算符和操作数的组合,在C里每个表达式都有一个值。5>3(值为1),{6+(c=3+8)}#值为17。
(2)语句:用分号标识。
- a=4是一个表达式,a=4;是一条语句。
- int a=0,b (如果从声明语句里去掉一个;则他既不是表达式也不具有一个值。
- 副作用和顺序点。states=50;这个表达式的副作用是把变量states的值改变为50。语句里的分号标志了一个顺序点。
- 复合语句用{};整个符合语句被认为是一个语句。缩排对编译器不起作用。
四、类型转换
- 提升和降级(包含两种数据类型的运算中,两个值被转换成两种类型里较高的的级别),提升是平滑的无损害过程,降级会出现错误。
- 避免自动类型转换特别是降级。
- 指派运算符:【mice=1.6+1.7;//mice=3.3】【mice=(int)1.6+(int)1.7;//mice=2】
【C-运算符】的更多相关文章
- shell运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用. expr 是一款表达式计算工具,使用它能完成表达式的求值操作. #!/bin/bash v ...
- SQL Server-聚焦APPLY运算符(二十七)
前言 其实有些新的特性在SQL Server早就已经出现过,但是若非系统的去学习数据库你会发现在实际项目中别人的SQL其实是比较复杂的,其实利用新的SQL Server语法会更加方便和简洁,从本节开始 ...
- java中的移位运算符:<<,>>,>>>总结
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- .NET 基础 一步步 一幕幕[运算符、占位符、转义符]
运算符.占位符.转义符 好吧,在五局全胜之后,终于升到了三个钻,距离一个星星还有一大段距离,忽然想起来今天的博客还没写,果断坑队友,来写博客了....感觉以后还是每天更新一篇比较好.要不晚上就该熬 ...
- ECMASCript2015 提案 stage-3的对象展开运算符
看源码时看到如下的代码 export default { //通过mapActions将actions映射到methods里 methods: { ...mapActions([ 'updateSta ...
- JavaScript权威设计--JavaScript表达式与运算符,语句(简要学习笔记六)
1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 “x”in a //false:a对象中已经不存在x属性 ale ...
- JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)
1.3种原始表达式 1.直接量: 1.23 //数字直接量 “hello” //字符串直接量 ...
- LINQ to SQL语句(18)之运算符转换
运算符转换 1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数.在 ...
- El表达式的关系运算符
El表达式的关系运算符: == 对应 eq != 对应 ne > 对应 gt < 对应 It
随机推荐
- 如何取消MSSQL自带智能提示步骤,使用第三方智能提示插件
步骤1如下: [工具]——[选项]——[文本编辑器]——[Transact-SQL]——[IntelliSense]——[Transact-SQL IntelliSense 设置]——(取消选择)—— ...
- 启动WCF多个服务方法
引用就不说明,直接贴上: using System;using System.Collections.Generic;using System.Linq;using System.Text;using ...
- python 模拟登录--day1
---------------edit-in-windows-by-pycharm---------------------import randomuname = "mologa" ...
- Oracle Recommended Patches -- "Oracle JavaVM Component Database PSU" (OJVM PSU) Patches (文档 ID 1929745.1)
From: https://support.oracle.com What is "Oracle JavaVM Component Database PSU" ? Oracle J ...
- C#实现简单的委托异步调用
delegate void textAsy(); static void Main(string[] args) { textAsy t = texts; AsyncCallback callBack ...
- sublimeText3安装emmet(For Mac)
每次重装st,安装emmet都困难重重,对上一次依照网上查的资料一步步做好了,这次又忘了如何操作,结果又是网上搜索打开一箩筐的网页. 终于决定,把这些惨痛的经历记录下来,要用的话自己看,也可能可以帮助 ...
- POJ 3057 Evacuation 二分图匹配
每个门每个时间只能出一个人,那就把每个门拆成多个,对应每个时间. 不断增加时间,然后增广,直到最大匹配. //#pragma comment(linker, "/STACK:10240000 ...
- Visual Studio2008环境下查找C#中方法的“查看所有引用”
在Visual Studio开发环境下,想必F12我们都很熟悉了,有没有用过“查看所有引用”呢? 尤其是在一个解决方案中,包含了很多项目,彼此相互的调用是很常见的,例如三层架构, BLL调用DAL,D ...
- python python 入门学习之网页数据爬虫cnbeta文章保存
需求驱动学习的动力. 因为我们单位上不了外网所以读新闻是那么的痛苦,试着自己抓取网页保存下来,然后离线阅读.今天抓取的是cnbeta科技新闻,抓取地址是http://m.cnbeta.com/wap/ ...
- 在 iTunes content中创建新的版本时,出现构建版本后面没有加号。
老项目升级时,提交版本时,ipa已经上传成功到APP store,但是构建版本后面一直都没有加号,等了一夜还是没有反应 后来苹果发来一封邮件,意思是,我需要在plist文件中添加一个NSMicroph ...