DELPHI数据类型

来源:互联网 发布:林天宝知乎 编辑:程序博客网 时间:2024/04/26 12:59

一、数据类型:
(1) 基本数据类型:
   a、 整数类型:      (通用类型<32位>:Integer-有符号;Cardinal-无符号)
         具体:
        有符号:Shortint<8位>,Smallint<16位>,Longint<32位 >
        无符号:Byte<8位>,Word<16位>,LongiWord<32位 >
  
   b、字符类型:        (通用类型<8位>:Char -与AnsiChar等同)
          具体:
           AnsiChar<8位> :主要存放Ansi字符
           WideChar<16位>:主要存放Unicode字符
   
   c、布尔类型:          (通用类型<8位>:Boolean-与ByteBool等同)
          具体:
           ByteBool<8位>,WordBool<16位>,LongBool<32位>
          不同的布尔类型主要用于鱼其它编程语言及不同windows系统兼容。
  
    d、枚举类型:
          定义:type  枚举类型标识符=(key1[=val1],.。。。,keyn[=valn])      :n<=255
          如果给某些key指定了值,则未指定值的key是前一个key值加1;
          如果全部默认不指定值,则key1值为0,往后逐个加1。

    e、子界类型:
          定义:type  子界类型标识符=下界 ..下界
          如:type   SubInt=1..3 0;表示 1~30的整数
                  type   SubChar='a'..'z';表示字符

     ※注:1、以上四种类型称为有序类型,即除第一个数为都有先行数、除最后一个数外都有后继数。在这里

    (计算机里),整数是有限的。有序类型的数都有一个序号,称为序数。整数的序数为其本身,其他类型第一

个数序数为0,依次递增。
                 2、子界类型上、下界必须是有同一有序类型,且上界序数大于下界序数。
     
      f、浮点类型:       (通用类型<8字节>:Real-与Double等同)
          具体:
          Double<8字节>,Real48<6字节>Single<4字节>,
          Extended<10字节>,Comp<8字节>,Currency<8字节>

    g、字符串类型:     (通用类型:String-与AnsiString等同)
          具体:
          ShortString :最多存放255个字符,第一个自己存放字符个数,不以NULL结尾
          AnsiString :存放Ansi字符,以NULL结尾
         WideString:存放Unicode字符,以NULL结尾
   
    h、时间、日期类型:TDateTime -实际是浮点类型的别称

(2)复杂数据类型:
  a、指针类型:
        定义:type 指针类型标识符=^基本类型;
        内在分配:New()        内存释放:Destroy()
        对于Pointer 和PChar  用GetMem()或AllocMem()分配内存,用FreeMem()释放内存
        分配内存后,就可以当成基本类型一样使用:指针类型标识符^

        实际上常如下运用指针:          
        var    变量标识符:^基本类型;
        为变量分配内存后就可以将(变量标识符^)当成普通变量使用。

  b、记录类型:
        定义:type   记录类型标识符=Record
                              字段1:类型;
                               ...
                               字段n:类型;
                    end;

  c、集合类型:
         定义: type 集合类型标识符=Set of  基本类型的子集或子界类型;(<=255个元素)

  d、变体(通用)类型: Variant;

(3)数组类型:
    a、一维数组:
          定义:type  数组标识符=Array[下标下限..下标上限] of 基本类型;

    b、多位数组:
          定义: type  数组标识符=Array[下限1..上限1,...,下限n..上限n] of  基本类型;

   c、动态数组(变量):
         var  标识符:array of 基本类型;
         SetLength(标识符,个数);//分配空间
         标识符:=nil;//释放

 

二、语句
  首先要说一下begin  ...  end; 相当于c或者c++中的{  ...  }。
  (1)声明语句
      常量:const    常量标识符[:类型]=常值;
      变量:var        变量标识符:数据类型;

  (2)表达式语句
      由运算符组成的合法语句
      运算符优先级:             运算符                                                优先级
                                            @        not                                                 1                      (最高)
                                    *,/,div,mod,and,shl,shr,as,                                  2
                                           +,-,or,xor                                                   3
                                  >,<,>=,<=,<>,=,in,is,                                          4                      (最低)

  (3) with  ...  do   ... end  语句
     主要在操作记录类型或组件时使用。
     示例:type people=Record                  //定义记录people
                              name:string;
                              addr:string;
                              age:integer;
                              sex:string;
                     end;
          var  Me:People;                //定义people型的变量
          with Me do
          begin
               name:='Paul';
               addr:='Guangzhou';
               age:=23;
               sex:='male';
          end;

(4)goto 语句
    现在所有声音都是说要减少goto语句是使用,所以尽量少用为是。
    示例:
         Label  MyLabel;                      //用Label保留字声明MyLabel

         MyLabel:                            //标记
                         、、、                 //其它语句
                        goto MyLabel;     //跳转到MyLabel 处

(5)条件语句
   a、if ...  then ... 语句
        if   布尔表达式 then  ..;
  或 if   布尔表达式 then
        begin
          ...
        end;
       其它格式:
       if ...  then...    else ...;
       if ...  then ..    else if ... then ...  else ...;

  b、case  ...  of     语句
        case   表达式  of
               值1:...
               值2:...
                ...
               值n:...
        end;

6)循环语句
  a、for ...  to ... do 语句
       for 循环变量:=初值 to  终值 do  ...;
或  for 循环变量:=初值 to  终值 do
      begin
         。。。
      end;

  b、while  ...  do 语句
       while  布尔表达式  do ...;
或 while  布尔表达式  do
      begin
        ...
      end;

 c、repeat ... until  语句
      repeat   ...   until   布尔表达式;

(7)循环的中断
    break: 循环结束
    continue:结束本次循环
    goto:(略)
    exit:退出当前函数或过程
    halt():终止整个程序,参数为整数
    RunError():(略)


三、过程与函数
(1) 过程(无返回值)
     声明: procedure     <过程名> (<参数列表>);

(2)函数(有返回值)
    声明:  function        <函数名> (<参数列表>):返回值类型;
    用Result 或 <函数名>返回函数值;
    即在函数中用  Result:=函数值;或 <函数名>:=函数值;返回;

二、语句
  首先要说一下begin  ...  end; 相当于c或者c++中的{  ...  }。
  (1)声明语句
      常量:const    常量标识符[:类型]=常值;
      变量:var        变量标识符:数据类型;

  (2)表达式语句
      由运算符组成的合法语句
      运算符优先级:             运算符                                                优先级
                                            @        not                                                 1                      (最高)
                                    *,/,div,mod,and,shl,shr,as,                                  2
                                           +,-,or,xor                                                   3
                                  >,<,>=,<=,<>,=,in,is,                                          4                      (最低)

  (3) with  ...  do   ... end  语句
     主要在操作记录类型或组件时使用。
     示例:type people=Record                  //定义记录people
                              name:string;
                              addr:string;
                              age:integer;
                              sex:string;
                     end;
          var  Me:People;                //定义people型的变量
          with Me do
          begin
               name:='Paul';
               addr:='Guangzhou';
               age:=23;
               sex:='male';
          end;

(4)goto 语句
    现在所有声音都是说要减少goto语句是使用,所以尽量少用为是。
    示例:
         Label  MyLabel;                      //用Label保留字声明MyLabel

         MyLabel:                            //标记
                         、、、                 //其它语句
                        goto MyLabel;     //跳转到MyLabel 处

(5)条件语句
   a、if ...  then ... 语句
        if   布尔表达式 then  ..;
  或 if   布尔表达式 then
        begin
          ...
        end;
       其它格式:
       if ...  then...    else ...;
       if ...  then ..    else if ... then ...  else ...;

  b、case  ...  of     语句
        case   表达式  of
               值1:...
               值2:...
                ...
               值n:...
        end;

6)循环语句
  a、for ...  to ... do 语句
       for 循环变量:=初值 to  终值 do  ...;
或  for 循环变量:=初值 to  终值 do
      begin
         。。。
      end;

  b、while  ...  do 语句
       while  布尔表达式  do ...;
或 while  布尔表达式  do
      begin
        ...
      end;

 c、repeat ... until  语句
      repeat   ...   until   布尔表达式;

(7)循环的中断
    break: 循环结束
    continue:结束本次循环
    goto:(略)
    exit:退出当前函数或过程
    halt():终止整个程序,参数为整数
    RunError():(略)


三、过程与函数
(1) 过程(无返回值)
     声明: procedure     <过程名> (<参数列表>);

(2)函数(有返回值)
    声明:  function        <函数名> (<参数列表>):返回值类型;
    用Result 或 <函数名>返回函数值;
    即在函数中用  Result:=函数值;或 <函数名>:=函数值;返回;

 
原创粉丝点击