零点起飞学C#之变量.pptx
《零点起飞学C#之变量.pptx》由会员分享,可在线阅读,更多相关《零点起飞学C#之变量.pptx(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 变 量在C#语言中,变量就是一个数据存储空间的表示。根据不同的数据类型,在内存中给变量分配合适的空间。为了便于找到该内存空间的位置,给这个内存起的名字就是变量名。每一个变量的值由其类型确定。本章将讲解C#语言中各种变量,主要介绍的知识点有变量的变量分类、变量赋值、变量转换等4.1 什么是变量在C#语言中,变量表示存储位置。每一个变量都具有一个类型,该类型确定变量存储的内容。对于两个变量而言,如果它们的值相同,但是类型不同,那么该变量存储的值是不相同的。C#中的所有变量在使用前必须先声明,这样C#编译器才能进行严格的类型检查。【示例4-1】下面声明两个变量v1和v2,它们的值都为2012
2、。但是v1变量的类型为int,而v2变量的类型为object。因此,v1和v2变量存储的值是不相同的。v1变量直接存储2012这一个值,而v2变量存储访问2012这个值的地址,如下图所示。int v1=2012;object v2=2012;注意:由于C#是一种类型安全的语言,C#编译器总是能够保证存储在变量中的值具有合适的类型。声明一个变量之后,该变量可能具有初始值,也可能不具有初始值。如果变量具有初始值,则称之为初始已赋值(initially assigned)。如果变量不具有初始值,则称之为初始未赋值(initially unassigned)。【示例4-2】下面声明两个变量v1和v2。
3、v1变量是一个初始已赋值变量,那是因为int类型具有默认初始值0。v2变量是一个初始未赋值变量,那是因为object类型不具有默认初始值。int v1;/声明int型的变量v1object v2;/声明object型变量v2Console.Write(v1);/输出v1变量的值Console.Write(v2);/编译出错,v2变量未赋值“Console.Write(v1);”语句将v1变量的值(0)输出在控制台上。“Console.Write(v2);”语句将为产生编译错误,那是因为v2变量未赋值,不能使用。注意:变量是初始已赋值还是初始未赋值的,由该变量的类型决定。如果变量的类型有默认初始
4、值,则该变量是初始已赋值的,否则为初始未赋值的。一般情况下,所有值类型都具有默认初始值,而所有引用类型是没有默认初始值。如果是第一次明确指定变量的值,则称之为变量的初始化。如果是初始未赋值变量,必须经过初始化之后,才能够被使用。【示例4-3】下面声明两个变量v1和v2。“v1=10;”语句初始化v1变量的值为10。“v2=10;”语句初始化v2变量的值为10。int v1;/声明int型的变量v1object v2;/声明object型变量v2v1=10;/为v1变量赋值为10v2=10;/为v2变量赋值为10注意:如果可以获取某一个变量的值,那么该变量必须是已明确赋值的,即该变量已经被初始化
5、。4.2 变量的类型由于变量所要表达的数据不同,变量可以分为7种:静态变量、实例变量、数组元素、值参数、引用参数、输出参数和局部变量。本节将详细介绍这7种类别的变量。【示例4-4】下面声明7个变量:s、v、a、i、r、o和j,而且这7个变量的类别各不相同。s是静态变量,v是实例变量,a0是数组元素,i是值参数,r是引用参数,o是输出参数,j是局部变量。01static int s;/定义静态变量s02int v;/定义int型变量v03void F(int a,int i,ref int r,out int o)04 /定义数组a,值参数i,引用参数r,输出参数o0506 int j=i;/声
6、明j变量,并赋值07 o=v+r;/计算v和r变量的和,并赋值给o变量08分析:s是一个静态变量,它的默认值为0;v是一个实例变量,它的默认值也为0。F是一个函数,a、i、r和o都是该函数的参数。a是一个数组,r是ref参数,o是out参数。j是一个局部变量。4.2.1 静态变量静态变量是指从程序开始运行,就被分配内存空间的变量。这类变量使用static修饰。【示例4-5】下面声明一个名称为count的静态变量,它的类型为int。static int count;/声明count静态变量,它的初始值为0静态变量都具有初始值,即是该变量的类型的默认值。示例4-5中的count变量的初始值是int
7、类型的默认值0。如果静态变量的类型为引用类型,那么它的初始值为null。【示例4-6】下面声明一个名称为o的静态变量,它的类型为object。static object o;/声明静态变量oConsole.Write(o);/输出o变量的值分析:o是一个静态变量,它的默认值为null,Console.Write(o)语句将输出一个空字符串。每一个变量都有一个声明周期,静态变量也一样。静态变量一般在程序编译之后就存在了,它总是在包含了它的那个类型的静态构造函数执行之前就存在了,在关联的应用程序域终止时终止。【示例4-7】下面创建一个名称为Program的类,并声明了sum静态变量,它的类型为in
8、t,且它的默认值为0。Count()函数将sum静态变量的值增1。01class Program0203 static int sum;/声明sum静态变量,它的初始值为004 static void Main(string args)05 06 Count();07 Console.WriteLine(sum);/输出sum静态变量的值08 09 static void Count()10 11 sum+;/sum静态变量的值增112 13分析:程序主入口Main(string args)函数首先调用Count()函数将sum静态变量的值增1,然后将sum静态变量的值输出在控制台,此时它的值
9、为1。4.2.2 实例变量实例变量是指在使用该变量三时才进行内存分配的变量。这类变量刚好和静态变量相反。1类的实例变量类的实例变量是在类中声明的变量,通过创建的类的实例来访问。对于实例变量,只有在对象被实例化之后,才会拥有一个值,并被分配到属于自己的存储空间。类的实例变量存在于类的实例创建开始到该实例被释放。【示例4-8】下面声明一个名称为Program的类,并在该类中声明了一个名称为count的实例变量,它的类型为int。01class Program0203 int count;/声明一个实例变量count04 /省略了其他代码05分析:count变量就是一个类的实例变量,它的初始值为in
10、t类型的默认初始值0。注意:类的实例变量和静态变量一样,也具有初始值,且它的初始值为该变量的类型的默认值。2结构的实例变量结构的实例变量是在结构中声明的变量,它随着结构的存在而存在。即它的生存周期和它所在的结构的生存周期相同。【示例4-9】下面声明一个名称为Program的结构,并在该结构中声明了一个名称为count的实例变量,它的类型为int。01struct Program0203 int count;/声明一个实例变量count04 /省略了其他代码05分析:count变量就是一个结构的实例变量,它的初始值为int类型的默认初始值0。注意:结构的实例变量与它所在结构变量具有相同的初始赋值
11、状态。也就是说,如果它所在结构变量本身是具有初始值时,该结构的实例变量也是具有初始值的。反之,也一样不具有初始值。4.2.3 局部变量局部变量是指在一个独立的程序块中声明的变量,它只在该程序块中有效。局部变量可以声明在块、for语句、switch语句或者using语句中。当程序运行到这一程序块中,该变量开始生效,离开即失效。【示例4-10】下面在F()函数中声明一个名称为j的局部变量,并设置其初始值为0。void F()int j=0;/声明一个局部变量j j+;/j的值增1分析:j局部变量的初始值为0,“j+;”语句使得j局部变量的值增1。局部变量的生存期是应用程序执行过程中的某一“段”时间
12、。在此期间,应用程序会为该局部变量保留存储控件。局部变量的生存期是从声明该变量开始,一直到它所在的块或for语句或switch语句或using语句结束。注意:局部变量不会自动初始化,因此,它不具有初始值。如果要使用该局部变量,则必须对该局部变量执行赋值。4.2.4 值参数值参数是指方法参数的一种,是声明时不带修饰符的参数。一个值参数相当于一个局部变量,只是它的初始值来自该方法调用所提供的相应参数。在内存中为值参数分配了一块新的存储空间。【示例4-11】下面在F(int i)函数中声明一个名称为i的参数,该参数的类型为int。int F(int i)/声明一个值参数变量i /省略了其他代码 re
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 零点起飞学C#之变 零点 起飞 C#
限制150内