C#变量
变量可以理解为是我们程序可以操作的内存区域的名称,在 C# 中每个变量都有自己特定的类型,这个类型确定了变量所占内存的大小、布局、取值范围以及可以对该变量执行的操作。
可以将变量当作一种通过符号(变量名)表示某个内存区域的方法,变量的值可以更改,并且可以多次重复使用。C# 中的基本变量类型可以归纳为以下几种:
类型 | 示例 |
---|---|
整型(整数类型) | sbyte、byte、short、ushort、int、uint、long、ulong、char |
浮点型 | float、double |
十进制类型 | decimal |
布尔型 | true、false |
空类型 | 可为空值的数据类型 |
声明变量
C# 中声明变量的语法格式如下所示:
data_type variable_list;
其中,data_type 为变量的类型,可以是 C# 中任何有效的数据类型,例如 char、int、float 等,也可以是我们自定义的数据类型;variable_list 为要声明的变量名称(标识符),variable_list 中可以包含多个变量名称,每个变量名之间使用逗号进行分隔,这样我们就可以同时定义多个变量,如下所示:
int i, j, k;
double a;
char b, c;
float d;
C# 中变量的名称并不是可以随意定义的,需要遵循如下所示的规则:
变量名中可以包含英文字母
a-z, A-Z
、数字0-9
和下划线_
;变量名只能以英文字母
a-z, A-Z
或下划线_
开头,不能以数字开头;变量名中不允许使用空格;
变量名不能是任何 C# 中的保留字或关键字,例如 char、float 等。
初始化变量
C# 中变量可以通过等号后跟一个常量表达式的形式进行初始化(赋值),语法格式如下:
variable_name = value;
也可以在变量声明时直接进行初始化,只需要在声明变量后使用等号后跟一个常量表达式即可,语法格式如下:
data_type variable_name = value;
下面通过一些简单的示例来演示一下变量的初始化:
int a, b, c;
a = 1;
b = 2;
c = 3;
char d = '';
float e = 3.14, f = 1.23;
注意:正确初始化变量是一种良好的编程习惯,否则程序运行时可能会产生意外的结果。
【示例】下面通过一个完整的示例来演示一下各种类型变量的声明和初始化:
using System; namespace c.biancheng.net{ class Program { static void Main(string[] args) { short a; int b ; double c; /* 初始化变量 */ a = 10; b = 20; c = a + b; Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c); Console.ReadLine(); } } }
编译并执行上述代码,运行结果如下:
a = 10, b = 20, c = 30
接受用户输入的值
上面的示例代码中我们使用到了一个名为 ReadLine() 的函数,它是由 System 命名空间中的 Console 类提供的,使用 ReadLine() 函数可以接受来自用户输入的内容并将其存储到变量中。
示例代码如下:
using System; namespace c.biancheng.net{ class Program { static void Main(string[] args) { int a, b; Console.WriteLine("请输入第一个数字:"); a = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入第二个数字:"); b = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0}+{1}={2}", a, b, a+b); } } }
C# 中的 Lvalues 和 Rvalues 表达式
C# 中有两种表达式,分别是 Lvalues 表达式和 Rvalues 表达式。Lvalues 和 Rvalues 一般是使用等号=
进行分隔的,等号左边的叫 Lvalues, 等号右边的叫 Rvalues。Lvalues:又称左值,左值表达式可以出现在赋值语句的左边或右边;
Rvalues:又称右值,右值表达式只可以出现在赋值语句的右边。
变量名是 Lvalues 的,所以可以出现在赋值语句的左边,而数值是 Rvalues 的,因此不能被赋值,不能出现在赋值语句的左边。下面就是一条有效的语句:
int age = 27;
而下面这条语句则是无效的,会导致编译错误:123 = 321;