C#学习笔记_3.C#数据类型

来源:互联网 发布:西安电子科技大学网络 编辑:程序博客网 时间:2024/06/03 21:18

在C#中,变量分为以下几种类型

  • 值类型(Value types)
  • 引用类型(Reference types)
  • 指针类型(Pointer types)

1.值类型

直接分配给值类型变量一个值,值类型变量直接包含数据,声明一个值类型的变量时,系统分配内存来存储值。获得值类型的长度,使用方法sizeof(type)。

类型 描述 范围 默认值 bool 布尔值 True 或 False FALSE byte 8 位无符号整数 0 ~ 255 0 char 16 位 Unicode 字符 U +0000 ~ U +ffff ‘\0’ decimal 128 位精确的十进制值,28-29 有效位数 (-7.9 x 1028 ~ 7.9 x 1028) / 100 ~ 28 0.0M double 64 位双精度浮点型 (+/-)5.0 x 10-324 ~ (+/-)1.7 x 10308 0.0D float 32 位单精度浮点型 -3.4 x 1038 ~ + 3.4 x 1038 0.0F int 32 位有符号整数类型 -2,147,483,648 ~ 2,147,483,647 0 long 64 位有符号整数类型 -923,372,036,854,775,808 ~ 9,223,372,036,854,775,807 0L sbyte 8 位有符号整数类型 -128 ~ 127 0 short 16 位有符号整数类型 -32,768 ~ 32,767 0 uint 32 位无符号整数类型 0 ~ 4,294,967,295 0 ulong 64 位无符号整数类型 0 ~ 18,446,744,073,709,551,615 0 ushort 16 位无符号整数类型 0 ~ 65,535 0

2.引用类型

  引用类型变量指向的是一个内存位置,内置的的引用类型有:object、dynamic、string;用户自定义的引用类型有:class、interface、delegate等。
  当一个值类型被转换为对象类型即是装箱,当对象类型被转换为值类型时即为拆箱
  
1. Object类型
Object是System.Object类的别名,是所有类型的父类,可以被分配任何类型,分配之前先进行类型转换即可。
2. Dynamic(动态)类型
可以存储任何类型的值。eg: dynamic d =10;
3. String类型
String类型是System.String类的别名,它是从Object类型派生来的,字符串类型的值通过两种形式进行分配:引号和@引号。
eg: String str = “hello”;
  String s = @”hello”;(@称作逐字字符串,将转义字符\当作普通字符对待。
  String s = @”C:\windows”;
  等价于
  String s= “C:\windows”;
  @字符串可以任意换行,换行符和缩进空格都计算在字符串长度之内。

3.指针类型

指针类型变量存储另一种类型的内存地址,与C和C++中的指针类型具有相同功能。
声明:type* identifier;
eg: char* cptr;
  int* iptr;

原创粉丝点击