c#发展

注册

 

发新话题 回复该主题

变量,变量名,变量值与变量数据类型009 [复制链接]

1#
变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念,变量可以通过变量名访问

简单来说就是在程序的运行过程可以改变的量,是程序在运行时临时存储数据的地方

C#变量就是C#程序在内存中运行时可操作的那块内存区域的名字

C#是一种强类型语言,每个变量都有一个特定的数据类型,编译器会实时检查所有在代码中声明的数据类型是否合法,如果是非法的数据类型则会报错,代码也会编译失败

C#变量总结:1)存在于内存中2)其值可以改变3)可以通过变量名访问使用4)每个变量都有一个特定的数据类型

变量数据类型

数据类型:C#提供一组标准的内置类型;是C#中的保留关键字(VS中以蓝色字体显示)

数据类型:就像是一个模板,声明哪种类型的变量就是通过.Net框架在内存中开辟一块此模板类型的空间,用于暂时存储程序运行时变量的数据

每一种C#的数据类型在.Net框架内都有对应命名空间的类或结构,C#代码中声明的数据类型是.Net框架内对应命名空间类或结构的别名,因此可以进行互换

数据类型中包含的信息

1)类型变量所需的存储空间

指在内存中开辟这种类型变量需要多大空间;如byte占据1个字节;int占据4个字节

2)可以表示的最大值和最小值

指这种类型的变量中可以存储数据的范围;如byte类型变量的存储范围为0-

3)继承的基类型;

主要是为继承基类的属性,方法等;比如继承自父类或接口中的属性与方法等

基本数据类型的分类1/p>

变量的数据类型可分为数值类型与非数值类型;数值类型又分为整形与非整形

整形的数值类型:byte(字节)short(短整形)int(整形)long(长整形)

正整形:ushort(正短整形)uint(正整形)ulong(正长整形)只取大于等于0的值

非整形的数值类型loat(单精度)double(双精度)decimal(货币型)

非数值类型:string(字符串)char(字符)bool(布尔)object(对象)

基本数据类型分类2:值类型与引用类型(之后再说)

变量的声明方式

就是数据C#中声明变量的语法规则(规则必须遵守,规范可守可不守,大多数都遵守)

方式1数据类型变量名;

//1只声明了变量intnum1;//2先声明,后赋值intnum2;num2=2;

方式2数据类型变量名=变量值;"="表示赋值即右侧的值赋值给左侧变量

intnum3=3;

方式3数据类型变量名1,变量名2,变量名3;(只能对同一类型使用此方式)

//方式3表示声明了同一类型的变量a,b,cinta,b,c;//只声明变量未赋值inta=1,b=3,c=5;//声明变量并对其赋值了内存中开辟变量

变量在内存的示意图

//声明变量bytea;//内存开辟一块byte类型的空间,该空间的别名是a,内存中实际存储地址是0Xa=0;//将右侧的值赋值给左侧的变量,就是将数据0暂时存储在别名为a的空间内a=3;//重新赋值将会覆盖之前的0;此时a的值为3

变量:就是内存中开辟的那块空间(0X给CPU用的);变量名:就是那块空间的别名(a给程序员用的)数据类型:就是那块空间的类型(byte)变量值:存储在那个空间内的数据(0)

不同类型的变量在内存中开辟的空间大小会不一样,所以可存储数据的范围就不一样

查看变量在内存中的地址

变量的使用规则1)先声明2)赋值3)才能使用

intnum5;Console.WriteLine(num5);//报错:使用了未赋值的变量intnum6=6;//先将第二行注释掉,否则会编译失败Console.WriteLine(num6);//输出6//其他的数据类型都遵循此规则整形数值类型

byte(字节型)

1)对应.Net中的System.Byte类使用变量名.GetType()方法获取

2)占据内存1个字节使用sizeof(数据类型)方法

3)可赋值范围0-使用数据类型.MinValue数据类型.MaxValue

字节型变量

以下三种类型不再编写代码截图,照byte方式即可

short(短整形或者小整形)

1)对应.Net的System.Int)占据2个字节3)赋值范围-32,-32,

ushort(正短整形)

1)对应.Net的System.UInt)占据2个字节3)赋值范围0-32,

int(整形)

1)对应.Net的System.Int)占据4个字节3)赋值范围-2,,,-2,,,

uint(正整形)

1)对应.Net的System.UInt)占据4个字节3)赋值范围0-2,,,

long(长整形或大整形)

1)对应.Net的System.Int)占据8个字节3)赋值范围大约在-2^19-2^19次方

ulong(正长整形)

1)对应.Net的System.UInt)占据8个字节3)赋值范围大约在0-2^19次方

整形数值类型注意事项:

1)C#中声明数据类型的关键字等同于相应的.Net的类型名称

2)整数类型有一定的赋值范围,超出范围的数据是无法表示的

3)整数类型的变量不能为其赋带有小数的值

类型互换;赋值超围

非整形数值类型

float(单精度或单精度浮点型)

1)对应.Net的System.Single2)占据4个字节3)精确到小数点的6-7位并且会四舍五入

4)赋值范围大约在1.5X10^-45~3.4X10^)可赋值整数与小数

单精度声明,赋值,取值

注意:为单精度变量赋值时加f;以f结尾表示数值变量表示单精度

double(双精度或双精确度浮点型).

1)对应.Net的System.Double2)占据8个字节3)精确到小数点的16-17位

4)赋值范围大约在±5.0X10^-~±1.7X10^)可赋值整数与小数

双精度

decimal(货币型)

主要用于对财务,货币,航天等需要精确度较高的领域

1)对应.Net的System.Decimal2)占据12个字节3)精确到小数点的28-29位

4)赋值范围大约在±1.0×10E?28to±7.9×10E)可赋值整数与小数

货币型

注意:赋值时加上m结尾

货币型(decimal)与浮点型(float与double)的区别/p>

1货币类型具有更高的精度和更小的范围,更适合于财务和货币计算

2货币类型精确度高赋值范围比较小

注意:非整形数值类型的数据更在意的是其精确度,而不是其范围,可以为其赋整形与非整形数值类型的值

非数值类型

string(字符串)

1)对应.Net的System.String2)赋值时必须带有双引号3)有空字符串

字符串类型

注意:为字符串类型变量赋值必须加上""(双引号)

char(字符)

1)对应.Net的System.Char2)赋值时必须带有单引号且只能赋值一个字符(包含中文)

3)有,值为一个空格的变量,没有,没有任何字符的变量

字符型;ch3是值为一个空格的变量

注意:为字符类型变量赋值必须加上"(单引号)且只能赋一个字符的值,哪怕其值是一个空格的值;没有,不含任何字符的变量

bool(布尔)

1)对应.Net的System.Boolean

2)只能赋值true或false或表达式结果为这两种值

布尔型;将1小于3比较的结果值赋值给b3

object(对象)

1)对应.Net的System.Object2)可以为此变量赋上面类型之中任何类型的值

牛叉的原因bject这个类型,是CLR定义的最基础的类型,也被戏称"上帝类",因为C#中所有类型的数据都可以转换为object类型(会发生装箱/拆箱,消耗性能,除非必要,不要随意赋其他类型值)

object类型

虽然前6个的值都是6,由于赋值的类型不同,所以表示的是不同类型的数据

obj1有可能的类型:byte,short,int,doubleobj2:表示字符串的6obj3:表示字符6

obj4:表示单精度的6obj5:表示货币型的6

小结

1)理解变量在程序与内存中的含义

2)变量的声明方式,在声明变量时,.Net机制对内存的操作

3)数据类型的分类,各类型声明时注意事项

分享 转发
TOP
发新话题 回复该主题