• C#基础(二)之数据类型


    在第一章我们了解了C#的输入、输出语句后,我这一节主要是介绍C#的基础知识,本节的内容也是后续章节的基础,好的开端等于成功的一半。在你阅读完本章后,你就有足够的C#知识编写简单的程序了。但还不能使用继承或其它面向对象的特征。

       本章主要针对以下几个部份来进行讲解:

       1、电脑是由什么来存储所使用的数据?

       2、基本数据类型有哪些?

       3、如何声明变量和赋值?

       4、变量和常量的区别?

       5、不同数据类型之间是如何转换的?

       下面,我们现一个一个的来了解这些问题。

      

        一、电脑是由什么来存储所使用的数据?

          这个问题用一句话比较笼统的概括,那就是:电脑使用内存来记忆计算时所使用的数据。

          在现实生活中的数据各种各样,整数、小数、字符串、字符等等,它们都类型是不一样的,所以你要想在计算机中使用这些类型,就必须在内存中为它申请一块合适的空间。

         那有哪些数据类型是C#能使用的呢?我们一起来看一看.

        

          二、基础数据类型有哪些

          首先要了解一点:C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中。

          如,在c#中声明一个int类型的数据时,声明的实际上是.net结构System.Int32的一个实例。这听起来似乎很深奥,但其意义深远:这表示在语法上,可以把所有的基础数据类型看作是支持某些方法的类。

         类型实际上仍存储为基本类型。基本类型在概念上用.Net结构表示,所以肯定没有性能损失。

         下面大家一起来了解一下C#中定义的内置类型,我们将列出每个类型,以及它们的定义和对应的.net类型(CTS类型)的名称。

          c#有15个预定义类型,其中13个是值类型,两个是引用类型(string 和 object)

        1、整型

       2、浮点类型

     

        float数据类型用于较小的浮点数,因为它要求的精度较低。

        double数据类型比float数据类型大,提供的精度也大一倍(15位)。

        如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double。

        如果想指定该值为float,可以在其后加上字符F(或f),如:

             float f = 12.3F;

     3、decimal类型

        decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。

        要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:

        decimal d=12.30M;

        4、bool(布尔)类型

     

     

        5、char字符类型

         char类型的字变量是用单引号括起来的。     如'A'

         如果把字符把在"A"(双引号)内,编译器会把它看作是字符串,从而产生错误。

     

        6、引用类型(Object类型和字符串类型)

     

     三、如何声明变量和赋值

       1、变量的定义:是指在程序的运行过程中随时可以发生变化的量

        2、上面我们提到,变量在运行时当中是存在内存当中的,它是一个临时的存放场所。

             那么在内存当中,可以存放如数字、字符串、日期等等各种类型的数据。

     

     

    大家可以看一看这张图,它就把表示内存当中的一个状态。

    简单的来说,变量就是表示内存当中的一块存储区域。

    它会对应一个唯一的内存地址,但是我们在使用程序当时候,内存地址不好理解也不好记忆。

    那么怎么办呢?

    在日常生活当中我们都有一个名字,如"张三“、”李四“等,这些名字就是为了便于记忆。

    那么同样,在程序当中,为了区别多个变量,那就需要为每个变量赋值一个简短,便于记忆的名字,

    这就是变量名

         3、 C#中的变量的命名是是有规则的:

             1)、由字母、数字或下划线"_"组成

             2)、必须由字母下划线"_"开头,不能以数字开头

             3)、不能是c#中的关键字 如:int、string、bool、Main、class等 

             4)、区分大小写  如:小写的a  和  大写的A 是两个变量

         

          4、做为一个比较好的学习者,就必须遵守一些变量命名规范:

               1)、变量的名字要有意义,尽量用对应的英语命名,具有“见名知意“的作用。

                      如:姓名   变量取名为 name 或者 用拼单  xingMing,避免用a,b,c来进行命名。

               2)、避免使用单个字符作为变量名( 除在循环里面定的变量)

               3)、当使用多个单词组成变量名时,应该使用骆驼(Camel)命名法

                       骆驼(Camel)命名法:第一个单词的首字母小写,其它单词的首字母大写,如:myName,myAge

               

              选择题:以下变量命名正确的是(     )

                      A、name、 _222*1、 9class、 public

                      B、_teacher、 void、 string、 myName

                      C、$Age、 corss、 fire、 _grade

                      D、_glass、 g23、 c_12、 my_first_2

          5、变量的声明和赋值

              1)定义变量的语法:

                数据类型    变量名;      (定义一个年龄的变量,年龄是整数,所以变量定义如下:)

                  int          age;         [系统会根据数据类型,在内存中分配不同大小的存储空间]

                 每个数据类型后面,可以定义多个变量,如:(定义姓名、家庭地址、籍贯、民族)

                    string name,address,origin,national ;

                

               2)为变量赋值语法:

                    =           

                  (这里的=号表示赋值运算符,把=号右边的值,赋值给左边的变量名,最后以一个;[分号]结束)

                   如:年龄18岁,姓名为“小张",家庭地址为“重庆南坪XXX",

                          籍贯为“重庆",民族为“汉"

                    age = 18 ;

                    name = "小张" ;

                    address = "重庆南坪XXX" ;

                    origin = "重庆" ;

                    national = "汉" ;

     四、变量和常量的区别

             变量:是指在程序的运行过程中随时可以发生变化的量

            常量:是指在程序在运行过程中不会发生变化的变量

             

              常量的特点:

                       1、必须在声明是赋值

                       2、不能在在程序运行时,给常量赋值

                       3、常量是静态的。不必须(实际上,是不允许)在常量声明中包含修饰符static 

            

     五、不同数据类型之间是如何转换的

           在C#中数据类型转换分为两种:1)隐式[又叫自动]类型转换     2)显式[又叫强制]类型转换

               举个简单例子:

               飞机场里面停飞机,这是理所当然,我们把这种叫做隐式[又叫自动]类型转换

       

               那如果我们反过来看一看,飞机里面装飞机场,这个在我们实际生活中,觉得这是根据不可能的,

               但是程序可以做到这一点,我们把这种叫做显式[又叫强制]类型转换

     

               double和int之间就是(飞机场与飞机)这种关系,我们可以这样理解,double的取值范围比int要大得多

               所以double可以装得下int :

              int a=1234;   

              double b=a;   系统会把a整型变量的值赋值给double变量b.这就是隐式[又叫自动]类型转换

             那反过来:

             double a=1234;

             int b=a;        //系统编译时会报错,如图:

              

            

               那如何进行强制转换呢?c#提供了非常简便的方法,如:

              double a=1234;

              int b=(int)a;      //这样就强制把double类型,转换为int类型

             最后,再介绍一下,其它数据类型之间的转换(1、字符串转换为其它类型   2、任意类型之间的转换)

             1)、字符串转换为其它类型       

           语法:

            XX.Parse(字符串);         这里的xx代表的如:double,int,bool等

             举个例子来说明一下:

              string strValue="123.45";     //这是一个字符串,时面的值是"123.45"

              现要把它转换成小数类型,就可以使用double.Parse();来进行转换

             double dValue=double.Parse(strValue);

           2)、任意类型之间的转换

            语法:     

             Convert.ToXX(任何类型);

     

             如:把一个布尔类型转换为整型

                      bool a = true;
                      int b = Convert.ToInt16(a);
                     Console.WriteLine("转换后的结果是:"+b);  //转换后的结果是:1

        ok, 经过以上的学习,我相信大家对C#的一些基础知识有一定的了解,那么下一章我将介绍C#的算术运算符、逻辑运算符、关系运算符,以及控制程序流的语句。

  • 相关阅读:
    10 个雷人的注释,就怕你不敢用!
    Java 14 之模式匹配,非常赞的一个新特性!
    poj 3661 Running(区间dp)
    LightOJ
    hdu 5540 Secrete Master Plan(水)
    hdu 5584 LCM Walk(数学推导公式,规律)
    hdu 5583 Kingdom of Black and White(模拟,技巧)
    hdu 5578 Friendship of Frog(multiset的应用)
    hdu 5586 Sum(dp+技巧)
    hdu 5585 Numbers
  • 原文地址:https://www.cnblogs.com/gracewolf/p/5319077.html
Copyright © 2020-2023  润新知