Pchar,String,字符串數組的區別,謝謝!

解决方案 »

  1.   

    PChar:  字符串指针 指针使用之前 一般需要分配空间 或者指向已经存在且可用的内存空间
    string: 这是delphi特有的 类似 MFC的CString吧 这个不用自动分配空间 编译器会给你分配 而且它里面的空间可以动态增长,所以当设计到DLL给非delphi程序调用之类的,返回值为string类型的话就要多多注意,需要加上uses ShareMem, 你可以看看 var s:string;// 然后你 SizeOf(s)一下 
    字符串数组: 数组分动态或静态了,静态就比较简单,你分配了多大就是多大,而且大小不运行再被更改,动态数组的话需要使用前用SetLength告诉编译器这个数组的大小是多少,...当然它的动态就是说,你上次设置其长度为 10下次可以设置为20,这也是编译器支持的,如果你知道C++ 中STL的内存分配算法 可能对此就很清楚了PChar,String还可以用来类型转换 如PChar(p); string(p); 之类的 转换为 PChar型,String型。。OK?
      

  2.   

    在DELPHI 7 中使用PCHAR 时,编译器会提示: UNSAFE TAPYCASE。