C# 变量(Variables)

变量是内存中供程序操作的堆栈区的名字。

C# 中,每个变量都有一个特定的类型,变量的类型决定了变量指向的存储区的大小和布局。针对变量的一些列操作,就是对相应存储区块的操作。

在上一章我们已经讨论了各种数据类型。C# 中提供的基本的值类型大致可以分为以下几类

类型 举例
整数类型 sbyte、byte、short、ushort、int、uint、long、ulong、char
浮点型 float 和 double
十进制类型 decimal
布尔类型 true 或 false 值,指定的值
空类型 可为空值的数据类型

C# 允许定义其他值类型的变量,比如 enum,也允许定义引用类型变量,比如 class。这些我们将在以后的章节中进行讨论。在本章节中,我们只研究基本变量类型。

C# 中的变量定义

C# 中变量定义的语法

<data_type> <variable_list>;

这里的 data_type 必须是一个有效的 C# 数据类型,可以是 char、int、float、double 或其他用户自定义的数据类型。variable_list 可以由一个或多个用逗号分隔的标识符名称组成。

一些有效的变量定义如下所示:

int name, age, year;
char cs, ct;
float fri, your_salary;
double money;

您可以在变量定义时进行初始化:

int age = 27;

C# 中的变量初始化

变量通过在等号后跟一个常量表达式进行初始化(赋值)。变量初始化的语法如

variable_name = value;

例如

name = "简单教程";
money = 2.7;

变量可以在声明时被初始化(指定一个初始值)。初始化由一个等号后跟一个常量表达式组成,如下所示:

<data_type> <variable_name> = value;

下面的代码演示了变量如何在声明的同时初始化:

int age = 27, fm = 4;    /* 初始化 age 和 fm. */
byte c = 29;         /* 初始化 c. */
double pi = 3.1415926; /* 声明 pi 的近似值 */
char d = 'd';        /* 变量 d 的值为 'd' */

声明的同时赋予一个初始值是良好的编程习惯之一,不然程序运行时总会出现各种意想不到的错误(bug)。

变量的使用

我们先来看一段程序,使用了各种类型的变量

namespace VariableDefinition
{
    class Program
    {
        static void Main(string[] args)
        {
            short year;
            int born ;
            double age;

            /* 实际初始化 */
            year = 2017;
            born = 1986
            age = year - born
            Console.WriteLine("year = {0}, born = {1}, age = {2}", year,born,age);
            Console.ReadLine();
        }
    }
}

当编译和执行上面的代码得到

year = 2017, born=1986, c = 31

读取用户输入的值

System 命名空间中的 Console 类提供的 ReadLine() 函数,能够读取用户的输入,并把它存储到一个变量中。

例如

int age;
age = Convert.ToInt32(Console.ReadLine());

Console.ReadLine 读取的用户输入一般是字符串格式存储的,因此我们需要 函数 Convert.ToInt32() 把用户输入的数据转换为 int 数据类型,

C# 中的 左值(Lvalues) 和 右值(Rvalues)

C#中有两种表达式,左值表达式和右值表达式。 左值和右值一般是等号 (=) 分隔的,等号左边的叫左值, 等号右边的叫右值
1. lvalue :lvalue 又称左值, 左值表达式可以出现在赋值语句的左边或右边。 2. rvalue :rvalue 又称右值,右边表达式只可以出现在赋值语句的右边。

变量是 lvalue 的,所以可以出现在赋值语句的左边。数值是 rvalue 的,因此不能被赋值,不能出现在赋值语句的左边。下面是一个有效的语句:

int age = 27;

而另外的这些是一个无效的语句,会产生编译时错误:

27 = age;
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.