变量与常量

二、变量与常量

(一)变量

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();

}

(二)常量

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

原文地址:https://www.cnblogs.com/bosamvs/p/5436271.html