zoukankan      html  css  js  c++  java
  • 变量与常量

    二、变量与常量

    (一)变量

    1、变量类型

    1.1值类型

    值类型变量直接存储其数值,主要包括整数类型、浮点类型、以及布尔类型等。由于值类型变量在堆栈中进行分配,因此效率很高,使用值类型的主要目的是为了提高性能。值类型的特性有:

    ①值类型变量都存储在堆栈中;

    ②访问值类型变量时,一般都是直接访问其实例;

    ③每个值类型变量都有自己的数据副本,因此对一个值类型变量的操作不会影响其他变量;

    ④复制值类型变量时,复制的是变量的值,而不是变量的地址;

    ⑤值类型变量不能为null,必须有一个确定的值。

    1.1.1整数类型

    类型

    说明

    范围

    sbyte

    8位有符号整数

    -128~127

    short

    16位有符号整数

    -32768~32767

    int

    32位有符号整数

    -2147483648~2174783647

    long

    64位有符号整数

    -9223372036854775808~9223372036854775807

    byte

    8位无符号整数

    0~255

    ushort

    16位无符号整数

    0~65535

    uint

    32位无符号整数

    0~4294967295

    ulong

    64位无符号整数

    0~18446744073709551615

    一般常用的是int型。

    1.1.2浮点类型

    类型

    说明

    范围

    float

    单精度,精确到7位数

    1.5×10-45~3.4×1038

    double

    双精度,精确到15~16位数

    50×10-324~1.7×10308

    一般常用的是double型。

    1.1.3其他

    还有日期时间DateTime,枚举类型ENUM,结构类型struct,这些也都是值类型。

    1.2引用类型

    引用类型是构建C#应用程序的主要对象类型数据。在应用程序执行的过程中,预先定义的对象类型以new创建对象实例,并且存储在堆栈中。引用类型的特性有:

    ①必须在托管堆中为引用类型变量分配内存;

    ②必须使用new关键字来创建引用类型变量;

    ③在托管堆中分配的每个对象都有与之相关联的附加成员,这些成员必须被初始化;

    ④引用类型变量是由垃圾回收机制来管理的;

    ⑤多个引用类型变量可以引用同一对象,这种情形下,对一个变量的操作会影响另一个引用的变量。

    ⑥引用类型被赋值前的值都是null。

    所有被称为“类”的都是引用类型,主要包括类、接口、数组、和委托。常用的为字符串型:string。

    1.3值类型与引用类型的区别

    ①从概念上看,值类型直接存储其值,引用类型存储对其值的引用。

    ②从内存空间上看,值类型是在栈中操作,引用类型是在堆中分配存储单元。

    通俗讲,值类型相当于现金,要用直接用;引用类型相当于存折,要用得先去银行取。

    2、类型转换

    2.1隐式转换

    隐式转换是指不需要声明的转换。例如将int型转换为long型,代码为

    int i=927;

    long j=I;

    2.2显式转换

    显式转换也称为强制转换,需要在代码中明确地声明要转换的类型。例如将double型的x进行显式转换,代码为

    static void Main(string[] args)

    {

       double x=198.112;

       int y=(int)x;

       Console.WriteLine(y);

       Console.ReadLine();

    }

    (二)常量

    常量就是其值固定不变的量,而且常量的值在编译时就已经确定了。

  • 相关阅读:
    研究生第二学期总结
    Android应用开发EditText文本内容变化监听方法
    Android 自定义动画 Loading
    UML建模之活动图介绍(Activity Diagram)
    UML学习(二)-----类图
    UML系列图--用例图
    Lesson9 some interesting things in C#
    Lesson10 Fianl and fellings
    Lesson 7: C#多线程
    浅谈android Socket 通信及自建ServerSocket服务端常见问题
  • 原文地址:https://www.cnblogs.com/bosamvs/p/5436271.html
Copyright © 2011-2022 走看看