通常运算符划分为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. 关于javascript document.createDocumentFragment() 替代insertCell、insertRow这种每次都使用大量的资源导致浏览器崩溃

    documentFragment 是一個無父對象的document對象他支持以下DOM2方法: appendChild, cloneNode, hasAttributes, hasChildNodes ...

  2. C++ Primer 随笔 Chapter 13 复制控制

    1.复制控制包含的内容:复制构造函数.赋值操作符.析构函数 2.复制构造函数: a. 定义:只有单个形参,而且该形参是对本类类型的引用,这样的构造函数被成为复制构造函数 b. 适用情况: (1)根据一 ...

  3. POJ-3580-SuperMemo(splay的各种操作)

    题意:对数组进行各种操作 其中 REVOLVE右移操作.将区间[a,b]右移c位 首先c可能比较多,可以先对区间长度取模. 在右移之后,可以发现[a,b]被分为两个区间[a,b-c]  [b-c+1, ...

  4. 【动态规划】Codeforces 698A & 699C Vacations

    题目链接: http://codeforces.com/problemset/problem/698/A http://codeforces.com/problemset/problem/699/C ...

  5. jsp中的contentType与pageEncoding的区别和作用

    jsp中的contentType与pageEncoding的区别和作用   <%@ page contentType="text/html; charset=utf-8" p ...

  6. Power Calculus 快速幂计算 (IDA*/打表)

    原题:1374 - Power Calculus 题意: 求最少用几次乘法或除法,可以从x得到x^n.(每次只能从已经得到的数字里选择两个进行操作) 举例: x^31可以通过最少6次操作得到(5次乘, ...

  7. redis合库

    玩家数据全部保存在redis,对合服来绝对是个坑.因为一直都是做开发,合库这事还是第一次操作. 首先,合服要做哪些事情,当然不同的游戏肯定不一样.合服的目的是为了增加同个服务器上活跃玩家的数量.合服有 ...

  8. Java IO流以及装饰器模式在其上的运用

    流概述 Java中,流是一种有序的字节序列,可以有任意的长度.从应用流向目的地称为输出流,从目的地流向应用称为输入流. Java的流族谱 Java的 java.io 包中囊括了整个流的家族,输出流和输 ...

  9. 如何提高Lucene构建索引的速度

    如何提高Lucene构建索引的速度 hans(汉斯) 2013-01-27 10:12 对于Lucene>=2.3:IndexWriter可以自行根据内存使用来释放缓存.调用writer.set ...

  10. strus2与spring3 mvc的差别

    比较了一下strus2与spring3 mvc的差别: spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3mvc中,一个方法对应一个r ...