Delphi中的指针类型

首先讲讲指针类型在delphi中是怎么定义的:

指针类型的定义语法

type

<指针类型标识符>=^<基类型>;

指针指向动态变量的类型是由^符后的基类型来标识,^符号也就是指针类型,而C++中是用*符号来表示指针类型.

举例说明

type

  student = record    //定义个记录类型,与c++中的结构类型类似

  name:string[8];

  number:integer;

  sex:(b,g);

  age:integer;

end;

  per = ^student;  //per是一个记录类型的指针类型结构

var

  p1,p2:per;  //p1,p2为指针类型,且p1,p2是个记录类型的动态变量

  r:^char;   //r指针变量是指向字符型的动态变量

指针类型的操作又是怎么样子的呢?举个简单的例子吧

type

  str = string[255];  //定一个长度为255字符串

  ptr = ^str;       //定义指针类型

var

  s:str;  //s是静态分配内存

  p:ptr;  //p是动态分配内存

  s:=‘hello‘;

  p^:=‘hello‘;  //这里的^符号表示指针变量的访问。我们当然也可以这样用

  s:=p^;这里与上面一行等价

不知道你们会了吗?

p和p^这是什么意思?

p是一个4字节的指针变量,且是静态的存放的,它是动态变量的内存的首地址。

p^则是256字节字符串变量,且是动态存放的,它指向的数据可以随意更改。

今天就写这么多吧,希望大家继续关注我的微博,如果有什么错误,请指正~

时间: 2024-12-26 05:40:50

Delphi中的指针类型的相关文章

我所理解的Delphi中的数组类型

数组可以使Object Pascal所拥有的任何数据类型,数组是一些数值的简单集合. var   MyArray: array[0..4] of Integer;        { 声明一个数组包括5个整数数值} begin   MyArray[0] := -200;                    { 通过操作符[]就可以访问每个数组元素}   MyArray[1] := -100;   MyArray[2] := 0;   MyArray[3] := 100;   MyArray[4]

Swift中对C语言接口缓存的使用以及数组、字符串转为指针类型的方法

由于Swift编程语言属于上层编程语言,而Swift中由于为了低层的高性能计算接口,所以往往需要C语言中的指针类型,由此,在Swift编程语言刚诞生的时候就有了UnsafePointer与UnsafeMutablePointer类型,分别对应为const Type*类型与Type *类型. 而在Swift编程语言中,由于一般数组(Array)对象都无法直接用于C语言中含有指针类型的函数参数(比如:void*),所以往往需要将数组转为指针类型,此外也需要将数组中元素内容存放到连续的存储空间.此外,

类成员变量中存在引用,const,和指针类型时需要注意的事项

背景知识 编译器默认生成函数的规则如下: 1.定义一个类时,如果自己没有声明,那么编译器会自动帮助生成一个拷贝构造函数(copy construction),赋值操作符(copy assignment),析构函数(deconstruction). 2.如果没有声明任何构造函数(包括拷贝构造函数),编译器会帮助声明一个默认构造函数. 构造函数(包括编译器生成的默认构造函数)的执行包括两个阶段: 1.初始化阶段 2.构造函数体内代码执行构造的阶段 构造函数执行的两个阶段非常重要,在初始化阶段,如果类

Delphi 中 函数参数中的 const 修饰符的本质以及注意事项

来自:http://blog.csdn.net/farrellcn/article/details/9096787 ------------------------------------------------------------------------------ 很多书籍中说函数参数如果是String类型的,如果在函数内部不改变参数的值,使用 const 修饰符会加快程序的执行速度,至于如何加快的?有的人说是因为 const 函数保证了参数字符串不会被复制.以前也没有对这个问题深入研究

delphi中一切皆指针

unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls,TypInfo,ObjAuto; type  TForm1 = class(TForm)    btn1: TButton;    btn2: TButton;    btn3: TButton;    btn4: TButton;    btn5: TB

Delphi中的函数指针判断是否为空

delphi函数指针 只有@@p才代表了函数指针本身的地址   assigned(p) 判断是否为空 或者用 @p=nil 来判断函数指针是不是为空 Delphi中的函数指针实际上就是指针,只是在使用的时候有些不同 函数指针要先定义一个函数类型,比如 type TTestProc = procedure of object; 这是一个最简单的函数类型,没有参数,也没有返回值,并且要求是类的成员函数 类的成员函数其实就代表了调用的时候参数的不同,因为类的成员函数隐含着一个对象参数,而不是显式写明,

Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool。后面三种布尔类型是为了与其他语言兼容而引入的

bool是LongBool类型. Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool.后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型. 这四种类型的布尔值占用内存的数量如下: Boolean 1 Byte ByteBool 1 Byte WordBool 2 Bytes(1 Word) LongBool 4 Bytes(2 Words) 对于ByteBool,WordBool和LongBool三种类型True

delphi中指针操作符^的使用

To see how pointers work, look at the following example.1    var2      X, Y: Integer;   // X and Y are Integer variables3      P: ^Integer;     // P points to an Integer4    begin5      X := 17;         // assign a value to X6      P := @X;         /

Delphi中BCD和Currency类型

用了这些年的Delphi,竟然对Currency及TBCDField一知半解,下文给了很好的讲解,值得一读. 一.       BCD类型 BCD即Binary-Coded Decimal?,在Delphi中,BCD字段类型可以精确保存浮点数据类型. Delphi支持的BCD码的数据类型名为TBCD,它的定义如下: TBcd  = packed record Precision: Byte;                        { 1..64 } SignSpecialPlaces: