Delphi 2010学习笔记(4)---数据类型(常量)---2011-01-18

1. 直接常量

       所谓直接常量就是指直接引用的量,如数字123,字符串'abcd'

    1.1 整型常量

    1.2 实型常量

    1.3 字符及字符串常量

    1.4 布尔型常量

2. 声明常量

       与直接常量不同,声明常量必须有一个合法的标识符,并在定义时对其赋值,一旦定义后此标识符的值不可在程序中被更改。

    2.1 符号常量

    2.2 资源字符串

             用 resourcestring 来声明,例如:

             resourcestring

                      str = 'delphi study';

            

             问题: 使用 Const  str = 'delphi study'也能编译通过,并且运行无误。两者间的区别还待研究。

                   如下例: 

                   

    2.3 类型常量

             语法格式为: <标识符>:<类型名> = <常量值>

             注:IDE编译开关{$J+}时,类型常量可以被重新赋值,此时类型常量与普通变量无区别。delphi 2010默认此开关关闭,

                   若无意中开启,可以用{$J-}来关闭此开关 

    2.4 数组常量

             一维数组常量可直接定义 Const  MyArray:array[0..2] of char = 'abc';

             多维数组常量需先定义数据类型后定义常量。如:

                     Type

                        TCube = array [0..2,0..1]of integer;

                     const

                        MyArray:TCube = ((1,2),(3,4),(5,6));

                 其各成员的值为:( 数组有两种表示方法 MyArray[0,0] 或MyArray[0][0] )

                      MyArray[0,0] = 1

                      MyArray[0,1] = 2

                      MyArray[1,0] = 3

                      MyArray[1,1] = 4

                      MyArray[2,0] = 5

                      MyArray[2,1] = 6

    2.5 记录常量

             声明记录常量时需要以“字段名:字段值”的形式知道那个每个字段的常量值,各个字段以分号间隔。对于变体记录,若其中

         出现了一个tag值,则必须赋值;只有含有tag时变体记录中的部分才能被赋值,例如:

            Type

               Tpoint = record

                   x,y:integer;

               end;

               Trec = record

                  x:integer;

               case tag:integer of

                  1:(i:integer);

                  2:(n:integer);

               end;

           const

               origin:Tpoint = (x:0;y:1);

               myRec:TRec =(x:1;tag:1;i:2;);

    2.6 指针常量

            指针常量在声明时可以使用任意一个变量的地址作为常量值。对于Pchar 或Pwidechar类型,声明时可以直接使用

        一个字符串作为常量值。例如:

          var

              i:integer;

          const

              p:Pinteger = @i;

              pstr:Pchar = 'abc';

          需要说明的是: (1) 使用@i 时,在之前必须定义过变量i,若把 i 的定义放在其后,则编译出错。

                                 (2) pstr 只是指向了字符串的第一个字符。类型为Pwidechar也是如此。

             

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值