通常运算符划分为3大类:
一元运算符、二元运算会、三元运算符,它们对应的操作数分别是1个、2个、3 个。
结合性和优先级顺序。
二元运算会是从左向右结合的,相反赋值运算符是从右向左结合的。
 
char类型存储的是字符而不是数字,但它是一个整型。
 
1、浮点型的特殊性
 
float和double有一些特殊性,
一个float具有7位精度。只能有7位精度的有效数字。其它会被截断。存在舍入误差。
 
 
浮点类型造成非预期的不相等
比较两个值是否相等的时候,浮点类型的不准确性可能造成非常严重的后果。有的时候,本来
应该相等的值被错误地判断为不相等。
 
2、递增和递减运算符
 
运算符的位置决定了所赋的值是操作数计算之前还是之后的值。
运算符采用后缀还是前缀形式,影响的只是在递增之前还是之后进行赋值,被影响的变量永远会改变。
 
线程安全的递增和递减
虽然递增和递减运算符简化了代码,但是两者执行的都不是原子级别的运算。
在运算符执行期间,可能发生线程上下文切换,并可能造成一个竞争条件。
 
 
3、常量表达式
const int a=60*60*24;
根据定义,常量表达式是C#编译器在编译时完成求值的表达式(而不是在程序运行时才能求值)
 
 
4、作用域和声明空间
作用域(scope)和声明空间(declaration space)是指由一个代码块限定的层次化上下文。
作用域是一个特定的源代码区域,在这个区域中,使用一个项目的未限定名称来引用它
完全合法,因为名称是引用是唯一的,是无歧义的。
在一个区域中,如果声明的名称具有唯一性,这个空间就是声明空间。
 
使用域限制了可访问性。
 
5、逻辑布尔运算符
OR运算符   ||                 两者一为true,返回true
AND运算符  &&            两者皆为true,返回true
XOR运算符    ^               两者只能有一为true,返回true
逻辑求反运算符    !        取反
 
6、条件运算符
    ?     :
 
7、空接合运算符
 
从C#2.0开始,执行空值检查的条件运算符有了一个简化语法,称为空接合运算符,
它检查一个表达式是否为null;如果为null,就返回第二个表达式。或者返回第一个表达式
expression1??expression2;
 
 
3.6、按位运算符
 
位和字节
计算机的所有值都表示成1和0的二进制格式。这些1和0为位或者比特bit。
8位分成一组,称为字节(byte)。
在每一个连续的位都对应于2的一个乖幂。
 
1、移位运算符
如:
1>>2
1<<2
 
左移:移位后在右边留下空位将由0来填充
右移:左边的空位,正数由0补,负数由1补
 
2、按位运算符
 
&  与
|    或
^    异或
~    取反
 
 
3.9 C#预处理器指令
 
C#预处理哭指令是在在编译时调用的。
预处理器指令告诉C#编译器要编译哪些代码,并指出如何处理特定的错误和警告。
 
每一个预处理器指令都以一个#开头,而且必须在一行中写完。换行符,标志着预处理
器指令的结束,不是分号。
在网上找记录下来。
弄清附录B的井字棋彻底搞清楚。
 
 

三、C# 运算符和控制流的更多相关文章

  1. C#流程控制语句--分支语句(if,switch,三位运算符)

    分支语句:判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). 分支语句  if if(判断条件表达式) {//表达式结果为tu ...

  2. ES6---扩展运算符和rest‘...’(三点运算符),在数组、函数、set/map等中的应用

    ES6新增的三点运算符,是由三个点表示,在数组中扮演着重要的角色,可以对数组进行合并与分解.可以对set等数据结构进行转换.可以对函数参数进行简化表示,接下来,我们一起揭开其神秘面纱… ●三点—res ...

  3. ES6_05_三点运算符和形参默认值

    三点运算符的用途: # 1. rest(可变)参数 * 用来取代arguments 但比 arguments 灵活,只能是最后部分形参参数 function fun(...values) { cons ...

  4. Es6扩展运算符--三点运算符(...)--展开语法(Spread syntax)

    0.看文档呀 关于拓展运算符更详细的解释见 > MDN展开语法 关于剩余参数更详细的解释见 >MDN剩余参数 关于解构赋值更详细的解释见 >MDN解构赋值 直接看上面的文档更好 1. ...

  5. ES6(模板字符串,三点运算符,Symbol,iterator接口)

    模板字符串 作用:简化字符串的拼接 模板字符串必须用``包含 变化的部分使用${xxx}包含 对象的简写方式 同名的属性可以省略不写 可以省略函数的function 箭头函数 箭头函数的特点 箭头函数 ...

  6. 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流

    最初的步骤 Python是大小写敏感的 任何在#符号右面的内容都是注释 >>> help('print')在“print”上使用引号,那样Python就可以理解我是希望获取关于“pr ...

  7. C# 本质论 第三章 操作符和控制流

    操作符通常分为3大类:一元操作符(正.负).二元操作符(加.减.乘.除.取余)和三元操作符( condition?consequence:alternative(consequence和alterna ...

  8. Java 基础知识总结 (三、运算符)

    三.Operators 运算符 Assignment Operators(赋值运算符) =   +=   -=   %=   *=   /=    <<=     >>=    ...

  9. Mysql学习笔记(三)运算符和控制流函数

    本章学习内容: 1.操作符 2.控制流程函数 操作符: i.圆括号.. 简单的介绍一下圆括号,圆括号的使用的目的是规定计算表达式的顺序...这个想必大家都熟悉例如  mysql>select 1 ...

随机推荐

  1. underscore.js框架使用

    Underscore.js是一个很精干的库,压缩后只有4KB.它提供了几十种函数式编程的方法,弥补了标准库的不足,大大方便了JavaScript的编程.MVC框架Backbone.js就将这个库作为自 ...

  2. 14.5.2.2 autocommit, Commit, and Rollback

    14.5.2.2 autocommit, Commit, and Rollback 在InnoDB,所有的用户活动发生在一个事务里, 如果自动提交模式是启用的, 每个SQL语句形成一个单独的事务.默认 ...

  3. mysql安装2

    linux下安装mysql-5.1.51.tar.gz (2010-10-27 10:59:26) 转载▼ 标签: mysql 数据库 tar.gz安装 杂谈 分类: Mysql数据库 MySQL h ...

  4. AlgorithmsI Exercises: UnionFind

    Question1 Give the id[] array that results from the following sequence of 6 unionoperations on a set ...

  5. Linux Kernel ‘kvm_set_memory_region()’函数本地提权漏洞

    漏洞名称: Linux Kernel ‘kvm_set_memory_region()’函数本地提权漏洞 CNNVD编号: CNNVD-201306-343 发布时间: 2013-06-20 更新时间 ...

  6. 数据结构(线段树):CodeForces 145E Lucky Queries

    E. Lucky Queries time limit per test 3 seconds memory limit per test 256 megabytes input standard in ...

  7. 动态规划(模型转换):uvaoj 1625 Color Length

    [PDF Link]题目点这里 这道题一眼就是动态规划,然而貌似并不好做. 如果不转换模型,状态是难以处理的. 巧妙地转化:不直接求一种字母头尾距离,而是拆开放到状态中. #include <i ...

  8. 如何更改项目所使用的C#版本

  9. loadView是干什么用的

    文/natewang(简书作者)原文链接:http://www.jianshu.com/p/f8d261d49615著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. viewContro ...

  10. VB.net 连接池

    上篇博客介绍了临时表的使用,以及它的生命周期和连接池的关系.那么为了能更好的把握临时表的产生和消亡,本篇博客就介绍Vb.net连接池.在打开和关闭数据库连接时的耗费的资源是非常高的.那么在程序需要频繁 ...