C#变量
一个变量只不过是一个供程序操作的存储区的名字。在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作。
C# 中提供的基本的值类型大致可以分为以下几类:
C# 允许定义其他值类型的变量,比如 enum,也允许定义引用类型变量,比如 class。这些将在以后的章节中进行讨论。在本章节中,只研究基本变量类型。
C# 中变量定义的语法:
1 | <data_type> <variable_list>; |
在这里,data_type 必须是一个有效的 C# 数据类型,可以是 char、int、float、double 或其他用户自定义的数据类型。variable_list 可以由一个或多个用逗号分隔的标识符名称组成。
一些有效的变量定义如下所示:
1 | int i, j, k; |
也可以在变量定义时进行初始化:
1 | int i = 100; |
变量通过在等号后跟一个常量表达式进行初始化(赋值),也可以在声明时被初始化。初始化的一般形式为:
1 | variable_name = value; |
接受来自用户的值:
System 命名空间中的 Console 类提供了一个函数 ReadLine(),用于接收来自用户的输入,并把它存储到一个变量中。
1 | int num; |
函数 Convert.ToInt32() 把用户输入的数据转换为 int 数据类型,因为 Console.ReadLine() 只接受字符串格式的数据。
C# 中的 Lvalues 和 Rvalues
C# 中的两种表达式:
- lvalue:lvalue 表达式可以出现在赋值语句的左边或右边。
- rvalue:rvalue 表达式可以出现在赋值语句的右边,不能出现在赋值语句的左边。
变量是 lvalue 的,所以可以出现在赋值语句的左边。数值是 rvalue 的,因此不能被赋值,不能出现在赋值语句的左边。下面是一个有效的语句:
1 | int g = 20; |
C#常量
常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。常量可以被当作常规的变量,只是它们的值在定义后不能被修改。整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。
整数常量:整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行组合。
以下为整数常量实例:
1 | 212 /* 合法 */ |
浮点常量:一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。可以使用小数形式或者指数形式来表示浮点常量。
使用浮点形式表示时,必须包含小数点、指数或同时包含两者。使用指数形式表示时,必须包含整数部分、小数部分或同时包含两者。有符号的指数是用 e 或 E 表示的。
这里有一些浮点常量的实例:
1 | 3.14159 /* 合法 */ |
字符常量:字符常量括在单引号里,例如,’x’,且可存储在一个简单的字符类型变量中。一个字符常量可以是一个普通字符(例如 ‘x’)、一个转义序列(例如 ‘\t’)或者一个通用字符(例如 ‘\u02C0’)。
在 C# 中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义,可用于表示换行符(\n)或制表符 tab(\t)。在这里,列出一些转义序列码:
字符串常量:字符串常量是括在双引号 “” 里,或者是括在 @”” 里。字符串常量包含的字符与字符常量相似,可以是:普通字符、转义序列和通用字符。
使用字符串常量时,可以把一个很长的行拆成多个行,可以使用空格分隔各个部分。
这里是一些字符串常量的实例。下面所列的各种形式表示相同的字符串:
1 | string a = "hello, world"; // hello, world |
定义常量:常量是使用 const 关键字来定义的 。定义一个常量的语法如下:
1 | const <data_type> <constant_name> = value; |
下面的代码演示了如何在程序中定义和使用常量:
1 | using System; |