3.2 变量
所谓变量,就是在程序的运行过程中其值可以被改变的量,变量的类型可以是任何一种C#的数据类型。所有值类型的变量都是实际存在于内存中的值,也就是说,当将一个值赋给变量时执行的是值复制操作。
3.2.1 变量的声明
C#变量的声明其实就是在程序运行前,告诉编译器程序使用的变量,以及与这些变量相关的属性,包括变量的名称、类型和长度等。这样,在程序运行前,编译器就可以知道怎样给变量分配内存空间,以便优化程序。
变量的声明包括变量类型和变量名两个部分,其语法格式如下:
变量类型 变量名
例如:
int age double PI char c
其中,int、double和char是变量类型,age、PI和c是变量名。这里的变量类型也是数据类型的一种,即变量age是int类型,PI是double类型,c是char类型。
3.2.2 变量的定义
变量的定义与声明区别在于多了一个分号,但是声明只是告诉编译器关于变量的属性,而定义除此之外还给变量分配了所需的内存空间。C#中,在使用变量之前必须定义此变量。
C#中变量定义的语法格式:
变量类型 变量名;
如果同时定义多个变量,C语言允许在一行或多行上列出变量名,并用逗号将各个变量名分隔开。
例如:
3.2.3 变量的初始化
变量的初始化是C#高安全性的一个体现。简单地说,编译器需要用某个初始值对变量初始化,未初始化而调用的变量会被当成错误。
初始化的一般形式为:
<data_type> <variable_name> = value;
例如:
【例3-5】编写程序,定义三个变量,并对其进行运算。
(1)在Visual Studio 2017中,新建名称为“Project5”的文件。
(2)在代码编辑区域输入以下代码。
【程序分析】本例演示了变量的使用。在代码中,首先定义三种类型的变量,分别为short类型的x,int类型的y和double类型的z;然后对变量x和y赋值,并且将变量x与y的和赋值给变量z;最后输出这三个变量的值。
在Visual Studio 2017中的运行结果如图3-5所示。
图3-5 变量的初始化
定义好的变量,用户也可以通过键盘为其赋值。在System命名空间中的Console类,提供了一个函数ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中。
例如:
int num; num = Convert.ToInt32(Console.ReadLine());
函数Convert.ToInt32()把用户输入的数据转换为int数据类型,因为Console.ReadLine()只接受字符串格式的数据。
3.2.4 C#中的左值和右值
C#语言中左值表示存储在计算机内存中的对象;右值表示当一个符号或者常量放在操作符右边的时候,计算机就读取它们的“右值”,也就是其代表的真实值。简单来说就是,左值相当于地址值,右值相当于数据值。右值指的是引用了一个存储在某个内存地址里的数据。
左值可以出现在赋值语句的左边或右边,右值只能出现在赋值语句的右边,不能出现在赋值语句的左边。
例如:
int a,b; b = 0; a = b;
在这里,首先定义a,b。然后对b赋值,此时计算机取b的左值,也就是这个符号代表的内存位置即内存地址值,计算机取0的右值,也就是数值0;然后给a赋值为b,此时取b的右值给a的左值。所以说,b的左值、右值是根据它的位置来说的。