摘要: 要点:1.在内层函数使用TList的时候,也需要Create创建2.使用完毕之后,要记得Free3.一个函数是可以写在另外一个函数里面的program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{函数返回TList}procedure MyFunc11(); function TemFunc():TList; var MyList : TList; begin MyList := TList.Create; MyList.Add(3... 阅读全文
posted @ 2013-10-26 23:24 GOD攀 阅读(1023) 评论(0) 推荐(0) 编辑
摘要: 要点:1.使用TList的时候,首先要用TList.Create初始化2.TList成员函数Add是增加一项,Count是获取项数3.函数里面用到了Var,来直接操作外层函数的TList。program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{函数var参数TList}Procedure MyFunc10();{插入函数} procedure TemFunc(var TheList : TList); begin TheList.Add(1); ... 阅读全文
posted @ 2013-10-26 23:17 GOD攀 阅读(854) 评论(0) 推荐(0) 编辑
摘要: 要点:1.给函数传入一个Var的数组变量,然后在函数里面设置数组长度,然后按需要返回。2.Low是取数组的下标最小的成员,High是取数的先最大的成员program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;type TArray = array of string;//字符串数组{函数返回数组}procedure MyFunc9();{功能函数} procedure MyArrFunc(var MyArr : TArray); var i : in... 阅读全文
posted @ 2013-10-26 23:13 GOD攀 阅读(2729) 评论(0) 推荐(0) 编辑
摘要: 要点:1.其实链表,就是每个节点结构体里面多了2个指针,相当于这个节点的左手和右手,左手牵着上一个节点,右手牵着下一个节点。2.注意,需要单独弄个结构体,知道头节点和尾节点。然后头节点一直顺着右手,就可以找到尾节点,从而遍历所有的成员program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{双向链表}procedure MyFunc8();type PNode = ^MyNode; //定义指针 MyNode = record //节点 Text: string;... 阅读全文
posted @ 2013-10-26 23:08 GOD攀 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 要点:1.我用的Delphi2010,每个Char占2个字节2.指针+1,是加了指针所对应的数据类型的大小的字节。Char型就是+2字节,Integer型就是+4字节。program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{指针与string}procedure MyFunc7();//返回值var MyStr: string; MyPointStr: PChar;//字符串指针 I: Integer; ABC : Char;//测试一下Char的长度begin M... 阅读全文
posted @ 2013-10-26 22:52 GOD攀 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 要点:1.DLL用exports加函数名表示导出这个函数2.Assigned函数判断参数释放为nil,也就是是否存在3.LoadLibrary用来加载一个DLL文件,参数为完整路径(同一目录下,可只写DLL文件名)。使用完了,要记得用FreeLibrary关闭这个打开的句柄4.GetProcAddress判断dll中,是否存在某个导出的函数,返回值是这个函数的句柄。5.type PMyFunc = procedure (para : Integer); 表示定义了一个名字叫PMyFunc的过程,只有1个Integer型参数program MyPoint; //指针详解{$APPTYPE CO. 阅读全文
posted @ 2013-10-26 22:50 GOD攀 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 要点:1.数组名称要用@取地址才能作为地址, 与c++有点不同2.StrCopy函数是把第二个参数复制到第一个参数地址里面去3.StrCat函数是把第二个参数字符串内容,接到第一个参数地址后面program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{指针和字符串}procedure MyFunc5();var str : array [1..50] of char; pstr : PChar; //Pchar 也就是 ^Charbegin StrCopy(@str, '田. 阅读全文
posted @ 2013-10-26 22:39 GOD攀 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 要点:1.GetMem函数是分配内存,第二个参数为分配内存的字节长度2.MyPoint1增加之后,如果需要释放MyPoint1数组,就必须在之前定义MyPoint2保存MyPoint1,用来FreeMem3.指针释放之后,内存残留的数据,如果没有被其他地方修改,还是可以读出来的!program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{动态分配指针长度}procedure MyFunc4();var MyPoint1, MyPoint2 : ^integer;//2个指针 ... 阅读全文
posted @ 2013-10-26 22:35 GOD攀 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 要点:1.指针指向的内容的大小因数据类型的不同而不同,指针本事的大小,都是4字节2.sizeof函数是取形参所占的内存大小3.IntToHex是把整数型的值,转换为16进制的值,第二个参数是16进制的长度为多少位program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{指针长度}procedure MyFunc3();var MyInt : Integer;//整数 MyPoint : PInteger; //定义指针 MyByte : Byte; MyPintByte... 阅读全文
posted @ 2013-10-26 22:31 GOD攀 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 效果图如下:要点:1.指针指向的地址或许不一样,也不管指针是多少级的指针,他们指针本身都是一样的,都可以用PInteger来强转换。2.多级指针取地址,要用多个^,比如二级指针,需要PInteger(MyPint2^)^来取值program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{多级指针}procedure MyFunc2();var MyInt : Integer;//整数 MyPint1 : PInteger; //1级指针 MyPint2 : ^Integer;... 阅读全文
posted @ 2013-10-26 22:26 GOD攀 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 效果图如下:要点:1.指针的2中定义方法 PInteger 和 ^Integer2.取地址符号 @ 和 Addr函数3.取内容符号 ^ ,比如MyPointInt1^则是取MyPointInt1指针所指向的内容了。program MyPoint; //指针详解{$APPTYPE CONSOLE}uses SysUtils,windows,Generics.Collections ;{指针的定义和取值}procedure MyFunc1();var MyInt : Integer;//整数 MyPointInt1 : PInteger;//指针定义1 MyPointInt2 : ^In... 阅读全文
posted @ 2013-10-26 22:14 GOD攀 阅读(1068) 评论(0) 推荐(0) 编辑