zoukankan      html  css  js  c++  java
  • 《Inside C#》笔记(九) 表达式和运算符

    赋值和比较操作是一门语言最基本的功能。

     

    一 基本概念

    a)基本的运算符有加、减、乘、除、取余、赋值。

    运算结果需要保存在内存的某个区域,有时直接保存在操作数本身,不管怎样,如果没有保存运算结果,编译器会报错。

    大多数运算符都只能操作值类型(还有包括decimal),==、!=、=还可以操作对象,+、+=可以操作字符串,+=也可用于事件注册。

     

    b)运算符的优先级,从上到下依次降低


    c)运算符的执行顺序

    加减乘除等二元运算符从左到右执行、’=’从右向左执行。

     

    d)特殊运算符

    typeof

    用来取得类的Type,主要用于反射

    sizeof

    用来获取某个类型占用的字节数,比如sizeof(int)=4,sizeof(bool)=1。原来bool类型占用一字节,一直以为是一比特的。sizeof也能用在自定义类型如结构体上。

     

    e)一元运算符+、-

    用来指示数值的正负,为了避免混乱,最好加上括号,如a=b*(-c);

     

    二 其它运算符

    a)混合运算符

    +=、-+这一类的,结果上相当于a=x+y这样的写法,但实际上具体执行过程是有区别的,尤其是涉及到方法调用的场合,比如:


    加黑的代码对应的IL码如下

    方法竟然被调用了两次,这在有些时候可能会带来莫名其妙的问题。

    而混合运算符只调用方法一次:

     

    所以推荐尽量用混合运算符

     

    b)自增自减运算符

    i++与++i的区别:i++ 返回原来的值,++i 返回加1后的值

     

    c)比较运算符

    >=、<=、!=、==

    ==比较引用类型时,对比的是两者的地址,要想比较两者的内容,可以重写equals方法

     

     

     

  • 相关阅读:
    python 调用dll 动态链接库 结构体参数及回调函数等示例
    逆向x64-small-trick
    Malloc碎碎念
    关于OF和CF
    月赛-Crackhash
    ARM64调试环境
    Apache Kafka(六)- High Throughput Producer
    Apache Kafka(五)- Safe Kafka Producer
    Apache Kafka(四)- 使用 Java 访问 Kafka
    Apache Kafka(三)- Kakfa CLI 使用
  • 原文地址:https://www.cnblogs.com/zhixin9001/p/7087433.html
Copyright © 2011-2022 走看看