第
Download
1 / 39

第 2 章 基本数据类型 - PowerPoint PPT Presentation


  • 172 Views
  • Uploaded on

第 2 章 基本数据类型. 2.1 一个简单的程序 2.2 基本数据类型 2.3 变量与常量 2.4 基本运算 2.5 数组的定义和使用. 2.3 变量与常量. 2.3.1 标识符与命名规则 2.3.2 变量 2.3.3 常量 2.3.4 类型转换 2.3.5 装箱与拆箱. 2.3 变量与常量. 2.3.1 标识符与命名规则. 在 C# 中所有的名称都必须先声明后使用,包括变量名、常量名、方法名、类名、对象名等等 , 这些名称统称为 标识符 满足下列条件的字符串称为 标识符 :

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 第 2 章 基本数据类型' - oona


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
2章 基本数据类型

2.1 一个简单的程序

2.2 基本数据类型

2.3 变量与常量

2.4 基本运算

2.5 数组的定义和使用


2.3 变量与常量

2.3.1 标识符与命名规则

2.3.2 变量

2.3.3 常量

2.3.4 类型转换

2.3.5 装箱与拆箱


2.3 变量与常量

2.3.1 标识符与命名规则

  • 在C#中所有的名称都必须先声明后使用,包括变量名、常量名、方法名、类名、对象名等等, 这些名称统称为标识符

  • 满足下列条件的字符串称为标识符:

    (1)由字母(包括大小写字母、汉字)、数字和下划线组成;

    (2)以字母或下划线开头。


2.3 变量与常量

以数字1开头

包括了字母、数字和下划线以外的字符#

包括了字母、数字和下划线以外的字符(空格)

2.3.1 标识符与命名规则(续)

合法的标识符:

_name

c_sharp

var1

var2

var2var1

非法的标识符:

1var

c_#

var2 var1


2.3 变量与常量

2.3.1 标识符与命名规则(续)

  • 标识符可以分为:

  • 用户标识符:由用户根据需要自己定义的标识 符(以上介绍的都是用户标识符)

  • 系统标识符:为系统保留的,只有系统才可以使 用的标识符


2.3 变量与常量

2.3.1 标识符与命名规则(续)

如果要定义与关键字重名的标识符,则必须在关键字前加上字符@:

@new

@if

@for

而下面的用户标识符是非法的:

new

if

for

——合法性(正确性)是标识符的最基本要 求,必须满足

——标识符的见名知义是提高程序的可读性的 基本途径

——注意:如果定义的标识符并非与关键字重名,而又在其前面加上字符@,则也是非法的。


2.3 变量与常量

2.3.1 标识符与命名规则(续)

  • 除了遵守标识符的命名原则以外,为了提高代码可读性,一般会使用一个命名约定来规范标识符的使用

    • 无规则的命名将会使编程和以后的维护工作称为一场噩梦

    • 不同的组织和机构可能有自己的命名约定。

    • 为了让标识符可读,会遇到一个标识符使用了多个单词的情况。

      • 根据标识符的用途,有两种常用的命名约定:

        • Pascal风格和Camel风格


Pascal camel
Pascal风格和Camel风格的命名约定


下表汇总了.NET FrameWork中标识符的大小写规则,并提供了不同类型标识符的示例。


2.3 变量与常量

2.3.2 变量

1. 声明变量

2. 变量赋值


1. 声明变量

  • 变量是在程序运行过程中,其值可以改变的数据

  • 在C#中,命名变量的过程叫声明,且规定,变量必须先声明后使用

  • 声明变量就是把存放数据的类型告诉程序,以便为变量安排内存空间

  • 声明变量最简单的格式为:

    数据类型名称 变量名列表;

    • 例如:

      int number; // 声明一个整型变量

      float x; // 声明一个单精度浮点型变量

      bool open; // 声明一个布尔型变量


声明变量

  • 可以一次声明多个变量

    • 例如:

      sbyte a , b; // 声明两个有符号字节型变量

    • 如果一次声明多个变量,变量名之间用逗号分隔


2. 变量赋值

  • C#规定,变量必须赋值后才能引用,为变量赋值需使用赋值号“=”

    • 例如:

      int number;

      number = 32; // 为变量赋值32

      bool open;

      open = true; // 为变量赋值true


变量赋值

  • 可以使用变量为变量赋值,例如:

    bool close;

    close = open; // 为变量赋值open(true)

  • 可以为几个变量一同赋值,例如:

    int a , b , c;

    a = b = c = 32;

  • 可以在声明变量的同时为变量赋值,相当于将声明语句与赋值语句合二为一,例如:

    double area , radius = 16;


2.3 变量与常量

2.3.3 常量

  • 常量是在程序运行过程中,其值保持不变的量

  • 常量有字面常量和符号常量两种

    1. 字面常量

    2. 符号常量


1. 字面常量

  • 字面常量即数据值本身

    (1) 整型常量

    (2) 实型常量

    (3) 字符常量

    (4) 字符串常量

    (5) 布尔常量


(1) 整型常量

  • 整型常量即整数

  • 整型常量有三种形式

    • 十进制形式

      • 即通常意义上的整数,如123、48910等

    • 八进制形式

      • 需要在数字前面加“0”,如0123、037等

    • 十六进制形式

      • 需要在数字前面加“0x”或“0X”,如0x123、0X48910等

  • 如果想使整型常量为长整型(long)常量,可以在数字后跟“l”或“L”


(2) 实型常量

  • 实型常量即带小数的数值

  • 实型常量有两种表示形式

    • 小数形式

      • 即人们通常的书写形式,如0.123、12.3、.123等

    • 指数形式

      • 也叫科学记数,由底数加E或e加指数组 成,例如123e5或123E5都表示123×105


实型常量

  • 实型常量默认为双精度型(double)

  • 实型常量可以显式指出是单精度型(float),还是双精度型(double),或者是十进制型(decimal)

    • 如123.5f或123.5F为单精度型,

    • 123.5d或123.5D为双精度型,

    • 123.5m或123.5M为十进制型


(3) 字符常量

  • 字符常量表示单个的Unicode字符集中的一个字符,通常包括数字、各种字母、标点、符号和汉字等

  • 字符常量用一对英文单引号界定

    • 如'A'、'a'、'+'、'汉'等


转义符

  • 在C#中,有些字符不能直接放在单引号中作为字符常量,这时需要使用转义符来表示这些字符常量,转义符由反斜杠“\”加字符组成


(4) 字符串常量

  • 字符串常量是由一对双引号界定的字符序列

    • 例如:"欢迎使用C#!","I am a student.“

  • 由双引号界定的一个字符,是字符串常量,不是字符常量

    • 例如,'A'与"A",前者是字符常量,后者是字符串常量

  • 如果试图将一个字符串常量赋值给一个字符变量,系统在编译代码时将报错

    • 例如,char ca = “A”; //无法将string类型隐式转换为char


(4) 字符串常量(续)

一些特殊情况下,在字符串中会包含一些反斜杠(如:文件路径经常有反斜杠),为了避免编译器把反斜杠后带的字符当作转义字符处理,[email protected]

例如,字符串“D:\Documents\Myfile.txt”可以如下赋值:

string filePath= “D:\\Documents\\Myfile.txt”

或者string filePath= @“D:\Documents\Myfile.txt”


(5) 布尔常量

  • 布尔常量即布尔值本身

  • 布尔值true(真)和false(假)是C#的两个关键字


2. 符号常量

  • 符号常量使用const关键字定义

    • 常量定义格式为:

      const 类型标识符 符号常量名 = 常量表达式;

      • “常量表达式”不能包含变量及函数等值会发生变化的内容,但可以包含其他已定义常量

      • 例如:

        const int max = 10; // 合法

        const double PI = 3.1415926; // 合法

        const double maxArea = PI * max * max; // 合法,表达式包含已定义常量

        int num = 10;

        const double maxArea = PI * num * num;

        // 不合法,表达式包含变量


2. 符号常量(续)

  • 由于符号常量代表的是一个不变的值,所以符号常量不能出现在赋值号的左边

  • 如果在程序中非常频繁地使用某一常量,可以将其定义为符号常量

    • 定义符号常量的好处在于:

      • 提高代码输入效率

      • 减少输入错误

      • 常量名一旦输入错误,在程序运行前的编译阶段即可检查出来


2.3 变量与常量

2.3.4 类型转换

  • 数据类型的转换有隐式转换与显式转换两种

    1. 隐式转换

    2. 显式转换

    3. 数值类型和字符串类型数据之间的转换


1. 隐式转换

  • 隐式转换是系统自动执行的数据类型转换

  • 隐式转换的基本原则

    • 允许数值范围小的类型向数值范围大的类型转换

    • 允许无符号整数类型向有符号整数类型转换

    • 例如:

      int x = 123456;

      long y = x; // 整型数隐式转换为长整型数

      uint a = 123456;

      long b = a; // 无符号整型数隐式转换为有符号的长整型数


1. 隐式转换(续)

  • C#允许将char(字符)类型的数据隐式转换为数值范围大于短整型(含)的数值类型

    • 例如:

      char letter = ‘A’;

      int num = 32 + letter;

      // 字符型变量letter的值隐式转换为整数65,与32相加

    • 之所以允许将字符型数据隐式转换为整数,是因为char类型的数据在内存中实质是保存为整型数据,当然从意义上代表的是Unicode字符集中的一个字符


2. 显式转换

  • 显式转换也叫强制转换,是在代码中明确指示将某一类型的数据转换为另一种类型

    • 显式转换的一般格式为:

      (数据类型名称) 数据

    • 例如:

      int x = 600;

      short z = (short) x;

      // 将整型变量x的值显式转换为short类型


2. 显式转换(续)

  • 显式转换中可能导致数据的丢失

    • 例如:

      decimal d = 234.55M;

      // 使用M或m类型符说明类型,否则编译出错

      int x = (int) d;

      // 将十进制型变量d的值显式转换为整型,小数部分被截去,x = 234


3.数值类型和字符串类型数据之间的转换

  • C#提供了专门的类方法用于数值类型和字符串类型数据之间的转换

    (1) Parse方法

    (2) ToString方法


1 parse
(1) Parse方法

  • Parse方法可以将特定格式的字符串转换为对应类型的数值

  • Parse方法的使用格式为:

    数值类型名称.Parse(字符串型表达式)

    • 其中,“字符串型表达式”的值必须严格符合“数值类型名称”对数值格式的要求

    • 例如:

      int x = int.Parse("123"); // 符合整型格式要求,转换成功

      int y = int.Parse("123.0");// 不符合整型格式要求,转换失败


2 tostring
(2) ToString方法

  • ToString方法可将其他数据类型的变量值转换为字符串类型

  • ToString方法的使用格式为:

    变量名称.ToString( )

    • 例如:

      int x = 123;

      string s = x.ToString( ); // 将整型变量x的值转换为字符串“123”


2.3 变量与常量

2.3.5 装箱与拆箱

  • 装箱就是将数值类型隐式转换为引用类型(类、接口、委托、数组)的过程,而拆箱则是将引用类型显式转换为数值类型。

  • 例如:

    int n = 100;

    object obj = n; //装箱

    int m = (int)obj; //拆箱


关于值类型与引用类型

  • 从变量的存储方式看,C#中的变量可以分为值类型变量与引用类型变量

    1. 值类型

    2. 引用类型


1. 值类型

  • 值类型变量直接包含其本身的数据,因此每个值类型变量本身就包含有赋给它的值

  • 在C#中,内置数据类型除了字符串(string)类型与对象(object)类型外,其余均为值类型


2. 引用类型

  • 与值类型不同,引用类型变量本身不包含数据,只是存储对数据的引用,数据保存在内存的其他位置

  • 值类型与引用类型变量都可以使用变量来赋值

    • 两者用变量赋值的性质不同:

      • 对于值类型变量赋值,赋的是变量的值

      • 对于引用类型变量的赋值,赋的是变量的引用


  • 例如:

    int x = 42, y = x;

    String t1 = newString(“Hello!”);

    String t2 = t1; // 使用对象变量赋值

  • 用变量“x”为变量“y”赋值,是将“x”所在内存中的值复制给了“y”

  • 而用变量“t1”为“t2”赋值,则是将“t1”对数据的引用复制给了“t2”,即两个对象变量使用的是同一内存中的数据,也就是说,用“t1”为“t2”赋值不需要使用new关键字对对象初始化,也就没有为对象“t2”分配存储数据的内存空间