变量常量与数据类型
1.变量简介
变量是一种可以帮助程序员轻松访问二进制数据内存地址的技术。
变量主要用来存储特定类型的数据,用户可以根据需要随时改变变量中存储的数据值。变量有名称、类型和值。使用变量之前必须先声明再使用。
2.声明变量
声明变量就是指定变量的名称和类型。在C#中,声明变量是由一个类型和跟在后面的一个或多个变量名组成,多个变量之间用逗号隔开,声明变量以分号结束。语法:
- 变量类型 变量名;
- 变量类型 变量名1,变量名2,…变量名n;
变量的命名规则:C#的变量名是一种标识符,所以只要符合标识符的命名规则即可。
3.数据类型
C#中的数据类型可以分为值类型和引用类型。
①整数类型
整数类型有3种表现形式,即十进制、八进制和十六进制。
八进制:以0开头的数,如0123=83(十进制)
十六进制:以0x和0X开头的数,如0x25=37(十进制)
C#内置的整数类型:
注:无符号整数类型是在有符号整数类型的前面加了u,u是unsigned的缩写。
注:整数类型的默认值为0。
②浮点类型
浮点类型有float和double两种。
如果没有指定,包含小数点的值默认为double类型。定义float类型的数值要加F或f。例,
float a = 1.6f;float b = 1.7F;
注:浮点类型的默认值是0,不是0.0。
③decimal类型
decimal表示128位数据类型,它是一种精度更高的浮点类型,它的精度可以达到28位,取值范围是±1.0 × 10-28 ~ ±7.9 × 1028。
如果要使一个小数变成decimal类型,需要在数值的后面添加后缀m或M。例,
decimal a = 1.3m;decimal b = 1.4M;
④bool类型
bool的值有两种true或false,不能将其他类型的值赋给bool类型的变量。语法:
bool 变量名=true/false;
注:布尔类型变量的默认值为false。
⑤字符类型
字符类型即Char类型,主要用来存储单个字符,在计算机中占16位(两个字节)的内存空间。在定义字符变量时要用单引号(\”)表示。例,
char a = \'a\';Char b = \'b\';
Char类提供了一些对字符的方法:
⑥转义字符
转义字符是一种特殊的字符变量,以“\\”开头,后面跟一个或多个字符,它不能单独作为一个字符使用。如果要使用反斜线,可以使用下面的代码表示:
char a=\'\\\\\';
常用的转义字符有:
当输出一个文件目录时,如果有多级目录,即使用多次“\\”,这样会很繁琐,这时可以用一个@符号进行多级转义。例,
Console.WriteLine(\"D:\\\\C#\\\\C# 7\");Console.WriteLine(@\"D:\\C#\\C# 7\"); //两行代码输出结果相同
4.变量的初始化
变量的初始化就是给变量赋值。在C#中,使用赋值运算符“=”给变量初始化。例,
int a, b;a = 12;b = a;int c = 13;int d, e, f, g;d = e = f = g = 11;
5.变量的作用域
一个变量被定义后只是暂存在内存中,等到一定条件就会被销毁,它有一个生命周期。变量的作用域有两种:
①成员变量
在类体中定义的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量分为静态变量和实例变量。例,
class Program{int a = 10; //实例变量static int b = 11; //静态变量(又叫类变量)}
静态变量的有效范围可以跨类,在其他类中以“类名.静态变量”被使用。
②局部变量
在类的方法体中定义的变量(定义方法的“{}”之间的区域)称为局部变量,它只在当前代码块中有效。
在类的方法中声明的变量包括方法的参数,都属于局部变量。局部变量的生命周期取决于方法,当方法被调用时,编译器为方法中的局部变量分配内存,当方法的调用结束后,释放局部变量的内存,局部变量也被销毁。
6.常量
常量就是值不能改变的量。在C#中,常量有const和readonly两种。
①const常量
const常量也叫静态常量,它必须在声明时进行初始化,在这之后不可被更改。例,
const double PI = 3.1415926;
②readonly常量
readonly常量是一种特殊的常量,叫动态常量。它可以动态赋值,但只能在构造函数中进行赋值。例,
class Program{readonly int a;Program(){a = 3;}static void Main(string[] args){}}
③const常量在编译时就被解析,即将常量的值替换成了初始化的值,而readonly常量的值需要在运行时才能确定。
const常量可以在类或者方法体中定义,而readonly常量只能在类中定义。