zoukankan      html  css  js  c++  java
  • 三、变量与常量(值类型,引用类型,两者区别,枚举类型,类型转换,变量声明,变量作用域,变量赋值,常量)

    继续复习。

    C#可以使用三种内存:堆栈(栈)stack、托管堆(堆)managed heap和非托管堆 unmanaged heap

    堆栈(栈):性能高,不灵活,只能分配固定大小的数据类型。

    托管堆(堆):可分配任意大小的数据,程序员只负责分配内存。.net框架的垃圾回收器负责其自动回收释放。灵活但效率稍低。

    非托管堆:不受.net框架控制,是windows 管理的内存,在C#中只能使用不安全的指针访问。

    变量

    变量用于在内存中存储特定值,并且这个值是可以变化的

    变量有名称、数据类型、值三要素。

    变量名是在程序源代码里的标识,类型确定它所代表的内存大小和类型(堆和栈),值代表它在内存块中的数据。

    变量在使用前必须先定义(声明和赋值)

    //语法1 数据类型 变量名
    int iMyAge;//声明整型变量
    iMyAge=1;//给变量赋初值
    //语法2 数据类型 变量名=值
    int iMyAge=1;//初始化变量
    //你可以一次声明多个变量,它们都是相同类型;也可以一次声明多个变量,并赋值
    int iFirstVar,iSecondVar;
    int iFirstVar=1,iSecondVar=2;

    使用变量时,可以直接使用名称,但是未赋值的变量不能使用,否则会造成编译错误

    变量的作用域

    每个语句块内都可以声明变量,这些变量叫语句块的局部变量。

    局部变量的作用域是指:声明变量的语句块内,位于声明变量之后的区域(包括嵌套在内的所有语句块)

    在一个语句块内定义了一个变量,那么在它的作用域内都不能定义同名的变量,否则会出现编译错误。

    在C#中没有全局变量。

    常量

    常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型。

    常量可以被当作常规的变量,只是他们的值在定义后不能被修改。

    数据类型

    C#完全支持.net框架通用类型系统(CTS)定义的类型,所有类型都是用类定义的。

    C#中既可以使用通用类型系统定义的类型,也可以使用自定义类型,所有的类型都是从System.Object派生出来的。

    C#语言的类型分为两大类:值类型和引用类型。

    值类型有简单类型、枚举类型、结构类型

    引用类型有类类型、数组类型、接口类型、委托类型

    值类型和引用类型的区别:

    1.它们存储的位置不一样。2.如果是引用类型,当两个对象指向同一个地方,修改某一个的时候,其他对象的值会发生改变。

    枚举类型

    枚举是一组命名整形常量,枚举类型是用enum关键字声明的

    C#枚举是值类型数据。换句话说,枚举包含自己的值,且不能继承或传递继承。

    声明枚举的一般语法:

    enum <enum_name>{
              enumeration list  
    }
    //这里enum_name是枚举的类型名称
    //enumeration list 是一个用逗号分隔的标识符列表
    //枚举列表中的每一个符号代表一个整数值,一个比前的符号大的整数值,默认情况下第一个枚举符号的值是0
    enum Days{Sun,Mon,tue,Wed,thu};
    //但是你也可以自己定义每个符号的值
    enum Days{Sun=77,Mon=11,tue=22,Wed=33,thu==55};

    类型转换

    类型转换从根本上来说是类型铸造,或者说是把数据从一种类型转换为另一种类型。

    在C#中类型铸造就两种方式:

    隐式类型转换-这种转换是C#默认的以安全方式进行转换,不会导致数据丢失。例如从小的整数类型转换为大的整数类型,从派生类型转换为基类。

    显示类型转换-显示类型转换,即强制类型转换。显示类型转换需要强制转换运算符,而且强制转换会造成数据丢失。

    double d = 5673.74;
                int i;
    
                // 强制转换 double 为 int
                i = (int)d;
  • 相关阅读:
    MySql学习20----数据库范式
    MySql学习17----数据库事务(01)
    MySql学习19-----用户管理
    MySql学习18----数据库事务---命令使用(02)
    MySql学习16----查看mysql库大小、表大小、索引大小
    MySql学习13----触发器
    MySql学习15----MySql日志
    java公开课-04-log4j
    java公开课-04-异常
    java公开课-03-内部类
  • 原文地址:https://www.cnblogs.com/baixiao/p/7704305.html
Copyright © 2011-2022 走看看