- C#从入门到精通(第4版)
- 明日科技
- 2005字
- 2020-11-28 16:23:15
3.2 变量的声明及赋值
视频讲解:光盘\TM\lx\3\02变量的声明及赋值.mp4
变量在使用之前,必须进行声明并赋值,本节将对变量的声明及赋值,以及变量的作用域进行详细讲解。
3.2.1 声明变量
变量的使用是程序设计中一个十分重要的环节。为什么要定义变量呢?简单地说,就是要告诉编译器(Compiler)这个变量是属于哪一种数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。声明变量就是指定变量的名称和类型,变量的声明非常重要,未经声明的变量本身并不合法,也因此没有办法在程序当中使用。在C#中,声明一个变量是由一个类型和跟在后面的一个或多个变量名组成,多个变量之间用逗号分开,声明变量以分号结束。
【例3.1】声明一个整型变量LS,然后再同时声明3个字符型变量Str1、Str2和Str3,代码如下。
intLS; //声明一个整型变量
string Str1, Str2, Str3; //同时声明3个字符型变量
在第1行代码中,声明了一个名称为LS的整型变量。在第二行代码中,声明了3个字符串型的变量,分别为Str1、Str2和Str3。
声明变量时,还可以初始化变量,即在每个变量名后面加上给变量赋初始值的指令。
【例3.2】声明一个整型变量a,并且赋值为927。然后,再同时声明3个字符型变量,并初始化,代码如下。
int a=927; //初始化整型变量a string x="用一生下载你", y="芸烨湘枫", z="一生所爱"; //初始化字符型变量x、y和z
在声明变量时,要注意变量名的命名规则。C#的变量名是一种标识符,应该符合标识符的命名规则。变量名是区分大小写的,下面列出变量的命名规则。
变量名只能由数字、字母和下划线组成。
变量名的第一个符号只能是字母和下划线,不能是数字。
不能使用关键字作为变量名。
一旦在一个语句块中定义了一个变量名,那么在变量的作用域内都不能再定义同名的变量。
说明 在C#语言中允许使用汉字或其他语言文字作为变量名,如“int年龄 = 21”,在程序运行时并不出现什么错误,但建议读者尽量不要使用这些语言文字作为变量名。
3.2.2 变量的赋值
在C#中,使用赋值运算符“=”(等号)来给变量赋值,将等号右边的值赋给左边的变量。
【例3.3】声明一个变量,并给变量赋值,代码如下。
int sum; //声明一个变量 sum=2008; //使用赋值运算符“=”给变量赋值
在3.2.1节介绍的初始化变量,其实是一种特殊的赋值方式,它在声明变量的同时给变量赋值。在给变量赋值时,等号右边也可以是一个已经被赋值的变量。
【例3.4】首先声明两个变量sum和num,然后将变量sum赋值为927,最后将变量sum赋值给变量num,代码如下。
int sum, num; //声明两个变量 sum=927; //给变量sum赋值为927 num=sum; //将变量sum赋值给变量num
注意 在对多个同类型的变量赋同一个值时,为了节省代码的行数,可以同时对多个变量进行初始化,如“int a, b, c, d, e; a = b = c = d = e = 0; ”。
3.2.3 变量的作用域
由于变量被定义出来后只是暂存在内存中,等到程序执行到某一个点后,该变量会被释放掉,也就是说变量有它的生命周期。因此,变量的作用域是指程序代码能够访问该变量的区域,若超出该区域,则在编译时会出现错误。在程序中,一般会根据变量的“有效范围”将变量分为“成员变量”和“局部变量”。
1.成员变量
在类体中定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为两种,即静态变量和实例变量。
【例3.5】声明静态变量和实例变量,实例代码如下。
cIass Test { int x = 45; static int y = 90; }
其中,x为实例变量,y为静态变量(也称类变量)。如果在成员变量的类型前面加上关键字static,这样的成员变量称为静态变量。静态变量的有效范围可以跨类,甚至可达到整个应用程序之内。对于静态变量,除了能在定义它的类内存取,还能直接以“类名.静态变量”的方式在其他类内使用。
2.局部变量
在类的方法体中定义的变量(方法内部定义,“{”与“}”之间的代码中声明的变量)称为局部变量。局部变量只在当前代码块中有效。
在类的方法中声明的变量,包括方法的参数,都属于局部变量。局部变量只有在当前定义的方法内有效,不能用于类的其他方法中。局部变量的生命周期取决于方法,当方法被调用时,C#编译器为方法中的局部变量分配内存空间,当该方法的调用结束后,则会释放方法中局部变量占用的内存空间,局部变量也将会销毁。
图3.1 变量的有效范围
变量的有效范围如图3.1所示。
【例3.6】创建一个控制台应用程序,使用for循环将0~20之间的数字显示出来。然后在for语句中声明变量i,此时i就是局部变量,其作用域只限于for循环体内,代码如下。(实例位置:光盘\TM\sl\3\1)
static void Main(string[] args) { //调用for语句循环输出数字 for (int i=0; i<=20; i++) //for循环内的局部变量i { Console.WriteLine(i.ToString()); //输出0~20的数字 } Console.ReadLine(); }
程序的运行结果为0~20之间的数字。
互动练习:某著名的在线通信软件公司出过这么一道面试题,说“经理有3个女儿,她们的年龄和是13岁,年龄的乘积等于经理的年龄。有位员工知道经理年龄,但是不能确定他3个女儿都是多大,这时,经理跟他说,我只有一个女儿超过5岁,于是那位员工就知道了经理3个女儿的年龄,那么经理的3个女儿都分别是多大?”使用C#推算经理3个女儿的年龄。