随笔分类 - 数组专题研究
摘要:应用:给动态数组内部添加一个元素的过程(可引申为开放数组做为参数)算法:1:首先给数组长度加1 2:在数组最后一个索引位置上添加对应元素代码:type TOneArray = array of Integer;procedure AddArrayItem(var Arr: TOneArray; x: Integer);begin SetLength(Arr,Length(Arr)+1); Arr[High(Arr)] := x;end;注意:参数生命中的var,这里引申出一个知识点;在过程或函数生命过程中,var,const,无 三者的不同;首先讨论有var和无var的区别,在参数传...
        阅读全文
                
摘要:1.数组与数组间的引用var Arr1,Arr2: array of Integer; a: array[0..1] of Integer;begin SetLength(Arr1,6); Arr1[5] := 100; Arr2 := Arr1; //Arr2 引用了 Arr1 ShowMessage(IntToStr(Arr2[5])); //100 ShowMessage(IntToStr(Length(Arr2))); //当然 Arr2 维数也会是 6 ShowMessage(IntToStr(SizeOf(Arr1))); //4, 其实动态数组是个指针 ...
        阅读全文
                
摘要:动态数组的创建:1,确定数组的类型2,确定数组的长度(其实是在内存中开辟动态数组存储的区域)3,给数组元素赋值,可以单个赋值,也可以对数组进行循环赋值4,数组的释放(一般没必要手动释放, 动态数组离开作用域会自释放)代码实例: var StrArr: array of String; //动态数组定义时不与维数begin SetLength(StrArr,6); //分配6个元素位置: 0-5StrArr[0] := 'sy'; //动态数组的下界是 0ShowMessage(StrArr[0]); //分配空间后和静态数组一样使用StrArr := nil; //一般没必要手
        阅读全文
                
摘要:1.单维动态数组在内存中的分部是连续的,可通过CopyMemory函数进行操作2.多维动态数组在内存中的分部是不连续的,但针对于每个维度,在内存中的存储确又是连续的,在使用函数操作时一定要注意。3.动态数组与静态数组的指针操作是不同的4.动态数组本身就是指针。
        阅读全文
                
摘要:静态数组的定义方法//1. 标准方法:var MyArr: array[0..10] of Integer; //定义静态数组//2. 可以使用非0下标:var MyArr: array[9..10] of Integer; //不能提倡,这样不容易与系统函数沟通//3. 根据预定义类型来声明数组:type TMyArr = array[0..10] of Integer; //先定义一个数组类型var MyArr: TMyArr; //再定义静态数组//4. 在非过程区可以直接赋值:var MyArr: array[0..2] of Integer = (11,22,33);//5. 多维数
        阅读全文
                
摘要:delphi数组分为静态数组和动态数组两种;静态数组特点:(1)自动管理, 当引用计数为 0 时(也就是不再使用时)会自动释放.如果你确有太大的数组需要释放, 那就给你的静态数组定义一个指针.(2)关于默认值, 静态数组变量和其他变量一样, 如果是全局的, 会初始化; 局部的不会.
        阅读全文
                
摘要:最近在项目中遇到一个比较棘手的问题,涉及全面有深度的数组知识,问题目前已经解决,在这里总结一下数组相关知识,加深印象以达到对delphi数组的全面掌握。从以下几方面了解数组(1)数组的分类(2)数组的定义(3)数组的本质以及在内存中的存储情况(4)数组的创建与释放(5)数组与数组间的操作(6)数组内部操作(7)数组与指针那点事(8)数组做为开放参数(9)2010新功能,泛型数组的应用
        阅读全文
                
                    
                
浙公网安备 33010602011771号