3.1 变量和常量的数据类型;3.1.1 值类型

C#中的数据类型根据其定义可以分为两种:一种是值类型,另一种是引用类型。这两种类型的差异在于数据的存储方式,值类型的变量本身直接存储数据。而引用类型则存储实际数据的引用,程序通过此引用找到真正的数据,

3.1.1   值类型

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

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

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

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

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

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

值类型是从System.ValueType类继承而来的类型,下面详细介绍值类型中包含的几种数据类型。

1. 整数类型

整数类型代表一种没有小数点的整数数值,在C#中内置的整数类型如表3.1所示。

表3.1   C#内置的整数类型

类   型 说   明 范   围
sbyte 8位有符号整数 -128~127
short 16位有符号整数 -32 768~32 767
int 32位有符号整数 -2 147 483 648~2 147 483 647
long 64位有符号整数 -9223 372 036 854 775 808~9 223 372 036 854 775 807
byte 8位无符号整数 0~255
ushort 16位无符号整数 0~65 535
uint 32位无符号整数 0~4 294 967295
ulong 64位无符号整数 0~18 446 744 073 709 551 615

说明:byte类型以及short类型是范围比较小的整数,如果正整数的范围没有超过65 535,声明为ushort类型即可,当然更小的数值直接以byte类型作处理即可。只是使用这种类型时必须特别注意数值的大小,否则可能会导致运算溢出的错误。


【例3.1】创建一个控制台

应用程序,在其中声明一个int类型的变量mr,并初始化为2010;声明一个byte类型的变量kj,并初始化为255,最好输出。代码如下。(实例位置:光盘\mr\example\第3章\3.1)

代码位置:光盘\mr\example\第3章\3.1\Test02\Test02\Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test02
{
    class Program
    {
        static void Main(string[] args)
        {
            {
                int mr = 2010;									//声明一个int类型的变量mr
                byte kj = 255;									//声明一个byte类型的变量kj
                Console.WriteLine("mr={0}", mr);				//输出int类型变量mr
                Console.WriteLine("kj={0}", kj);				//输出byte类型变量kj
                Console.ReadLine();
            }

        }
    }
}


2. 浮点类型

浮点类型变量主要用于处理含有小数的数值数据,浮点类型主要包含了float、double和decimal这3种数值类型。表3.2列出了这3种数值类型的描述信息。

表3.2   浮点类型及描述

类   型 说   明 精   度 范  围
float 4字节IEEE单精度浮点数 精确到7位数 1.5×10-45~3.4×1038
double 8字节IEEE双精度浮点数 精确到15~16位数 50×10-324~1.7×10308
decimal 16字节浮点数 精确到28~29位数 1.0×10-28~1.7×1028

如果不做任何设置,包含小数点的数值都被认为是double类型,例如9.27,没有特别指定的情况下,这个数值是double类型。如果要将数值以float类型来处理,就应该通过强制使用f或F将其指定为float类型。

【例3.2】下面的代码就是将数值强制指定为float类型。实现代码如下。
01   float theMySum = 9.27f;    //使用f强制指定为float类型
02   float theMuSums = 1.12F;    //使用F强制指定为float类型

说明:如果要将数值强制指定为double类型,则需要使用d或D进行设置。

【例3.3】下面的代码就是将数值强制指定为double类型。实现代码如下。

01   double myDou = 927d;    //使用d强制指定为double类型
02   double mudou = 112D;    //使用D强制指定为double类型

注意:如果需要使用float类型变量时,必须在数值的后面跟随f或F,否则编译器会直接将其作为double类型处理;也可以在double类型的值前面加上(float),对其进行强制转换。

3. 布尔类型

布尔类型主要用来表示true/false值,一个布尔类型的变量,其值只能是true或者false,不能将其他的值指定给布尔类型变量,布尔类型变量不能与其他类型之间进行转换。

说明:在定义全局变量时,如果没有特定的要求不用对其进行初始化,整数类型和浮点类型的默认初始化为0,布尔类型的初始化为false。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值