数据类型

 

 值类型和引用类型

在开始学习C#中的数据类型之前,理解C#把数据类型分为两种是非常重要的,这个问题经常会在一些面试题中出现。所以要理解清楚;

从概念上看,其区别是值类型直接存储其值,而引用类型存储对值的引用。

值类型默认分配在栈上,但可以通过装箱操作将值类型数据复制到堆上,但引用类型仅能被clr分配到堆中。

引用类型的数据保存在堆中,但引用地址保存在栈上。

注意区分某个类型是值类型还是引用类型,因为这种存储位置的不同会有不同的影响;

int是值类型,这表示下面的语句会在内存的两个地方存储值20

// i and j 都是值类型i = 20;   j = i;

如果变量是一个引用,就可以把其值设置为null,表示它不引用任何对象 y = null;

 

值类型主要由两类组成:

  • 结构

  • 枚举

结构分为以下几类:

  • Numeric(数值)类型

    • 整型

    • 浮点型

    • decimal

  • bool

  • 用户定义的结构。

预定义的值类型

1. 整型

C#支持8个预定义整数类型,如表所示。

名   称

CTS 类 型

说    明

范    围

sbyte

System.SByte

8位有符号的整数

–128~127 (–27~27–1)

short

System.Int16

16位有符号的整数

–32 768~32 767 (–215~215–1)

int

System.Int32

32位有符号的整数

–2 147 483 648~2 147 483 647(–231~231–1)

long

System.Int64

64位有符号的整数

–9 223 372 036 854 775 808~9 223 372 036 854 775 807(–263~263–1)

byte

System.Byte

8位无符号的整数

0~255(0~28–1)

ushort

System.Uint16

16位无符号的整数

0~65535(0~216–1)

uint

System.Uint32

32位无符号的整数

0~4 294 967 295(0~232–1)

ulong

System.Uint64

64位无符号的整数

0~18 446 744 073 709 551 615(0~264–1)

 

2. 浮点类型

名  称

CTS 类 型

说  明

位  数

范围(大致)

float

System.Single

32位单精度浮点数

7

±1.5 × 10-45~±3.4 × 1038

double

System.Double

64位双精度浮点数

15/16

±5.0 × 10-324~±1.7 × 10308

3. decimal类型

名称

CTS 类 型

说明

位数

范围(大致)

decimal

System.Decimal

128位高精度十进制数表示法

28

±1.0×10-28~±7.9 × 1028

4. bool类型

名称

CTS 类 型

说    明

位数

bool

System.Boolean

表示true或false

NA

true或false

5. 字符类型

名    称

CTS 类 型

char

System.Char

表示一个16位的(Unicode)字符

 

引用类型的变量又称为对象,可存储对实际数据的引用

 

预定义的引用类型

名  称

CTS 类

说    明

object

System.Object

根类型,CTS中的其他类型都是从它派生而来的(包括值类型)

string

System.String

Unicode字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值