问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

pChar 和 String的区别。请详细一点,行吗?

发布网友 发布时间:2023-07-08 18:01

我来回答

2个回答

热心网友 时间:2023-10-20 20:04

其实只要知道概念和使用上的区别就可以了,说多了反而会让人头昏,概念上
pchar是指针或者数组,string是变量(在某些语言里是类,最好当作类来看待)使用上pchar
一般用法要先申请空间,然后使用strcopy,不要使用“=”,(我刚开始使用的时候就犯过这个错,害我查错查了好几天)最后还要释放空间,
string我就不用说了,好方便,为什么要pchar类型呢,因为是为了
api函数接口,全部是pchar
类型的,没有string类型(如果把string当作类而不当作数据类型的话就容易理解着一点了),还有dll的参数,也不可以使用string,要用pchar,否则程序经常会出一些莫名其妙的问题,

热心网友 时间:2023-10-20 20:04

首先:pchar是指针类型。这个于c语言的字符串比较类似,也是以空字符为结束符。而string只有pascal才有,标准的string只能有256个字节,下标从1开始,实际上string也是从0开始的,但是string[0]这个元素存储的是字符串的长度,所以这个导致了标准的string只能由256个字节长。而后来扩展的string也可以存储超过256字节的东西。两者之间的转换:我只写比较标准,绝对无错的用法:string-->pcharvar
P:PChar;var
Str:String;begin
Str:='Hello';
GetMem(P,Length(Str)+1);
StrPCopy(P,Str);
ShowMessage(StrPas(P));end;pchar---->string只要调用strpas
pchar与string有什么区别?

和pchar差不多,delphi中的string就是那来和pchar兼容的,都是指向一个字符串的地址值,而这个字符串的长度通过最后的null来判断,但是string在负偏移处用2个字节存放串的长度,所以string最长为4G,如果是局部变量,在负偏移处,

delphi string 类型和 pchar 的区别

PChar 就是指向一个以Null 结尾的每个字符为一个字节的字符串的指针。 (可以看成是一个字符串)String是字符数组,以字符#0结尾;

delphi PChar和Array of Char的区别

从速度来说毫无疑问string最慢, 例如:作为参数传递(非var调用时)给过程时string将整个字串的副本传递过去, PChar将指针 本身的副本传递过去(32位), Char数组和PChar一样, 传递的是第一个元素的地址副本.不过就灵活性来说string最高, 而且Delphi支持的函数最多. 另外可以将String作为 Buffer使用(因为...

delphi TStringList 和 String 这两个类型有什么区别?

1. string是Delphi编译器内在支持的(predefined or built-in),是Delphi的一个基本数据类型,而PChar只是一个指向零终止字符串的指针; 2. String 所存字符串是在堆分配内存的,String变量实际上是指向零终止字符串的指针,与此同时它还具有引用计数(reference count)功能,并且自身保存字符串长度,当引用计数为零时,自动...

DELPHI初学问题,为什么PCHAR不为STRING呢

两个都对;第一个是让a指向字符串'abc'(编译器生成的临时变量),不另产生内存空间;第二个是将'aaa'赋值给b,b占用的空间会增加3个字节。

delphi中pchar和^char的区别

pchar:类型是一个指向空字符结束的字符串 ^char:是一个字符指针。是个指针,里面的内容是字符。var c :string;d :pchar;e :^char;f :pchar;g,g1:Pchar;h :^char;i:integer;begin setlength(c,10);for i:= 1 to 2 do begin c[i] := 'a';...

vb调用delphi的dll,pchar用什么类型

1',delphi编译器默认为Char型,而这种Char后面没有#0结束字符,而'10'则不同了,编译器默认为string型,string有个特点以#0为结束标志,恰好pchar类型也是这种情况,你写个'1',编译器会继续往后找#0,这样就可能访问越界出错,你的就是这种情况,如果你非要Show,则要这要写Showmessage(Pchar('1'#0))...

Delphi中PChar和TString如何转换?

关于PChar和String之间的转换,看看这段代码。var str1:String;str2:PChar;Begin SetLength(str1,255); //String类型设置固定长度 //下面是相互赋值 str1:=str2;str2:=@str1[1];end;

delphi动态链接库编程,PChar类型怎么转换成string类型???

strpas这个函数实际上没什么意思,直接String(aPansichar)就可以了。应该不是这个原因。看你的代码才知道什么问题。D7就用PChar,XE后的用Pansichar,XE的Pchar=Pwidechar

使用WINEXEC函数要注意什么?

我的意思是将对软盘的访问改向到对硬盘上某个文件夹的访问,如:subst a: d:\example但我在程序运行期间要不断变换文件夹,所以想用一个变量代替,但出现了错误。编译时的错误信息为:[Error]Unit1.pas(51):Incompatibletypes:'String' and 'PChar'[Fatal Error]Project1.dpr(5):Could not ...

详细和详尽的区别 的和得和地的区别在哪里 的和地的区别 详细仔细区别 请详细描述您的问题 得和的区别 的地得的区别在哪里 请您详细 请详细解答
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
EXCel里Vl00kUp具体怎么选中数值在哪加逗号才完整公式,求教高人 excel表格高手进来看看此问题如果解决: 我的八字五行什么命该注意什么和我女朋友生辰相生还是相克 结婚五行相克是大忌吗,我23属鸡剑锋金,女朋友21属猪山头火,很忌讳... 我的生日农历1983.8.11.1点,我女朋友生日是农历1988.6.22,6点半... 我是2月13号,是什么座的?? 2009年正月十五什么星座 老司机 炫龙 黑曼巴V56 Pro这款怎么样 手机解除宽带网速受限的方法 ...大厅新买的手机第二天就坏了,我要退货,他们说要检测后不是人为... 海康威视是正规央企吗 留学生在海外可以怎样过新年 请问在新加坡的留学生平时是不是自己煮饭的? 孙中山平均地权思想的主要内容及其局限性 留学生在国外做饭有多么不方便 【高中历史】孙中山民生主义平均地权把土地分给农民了么 宿州碧桂园玖珑府楼盘地址在哪里? 固始县玖珑府是大产权吗 济南玖珑府是毛坯房还是精装修? 亳州市谯城区疫都封了那此地方 亳州远大中国府国宾府是哪个开发商? 亳州市玖珑府属于哪个社区 远大玖珑府公寓是不是商品房 亳州远大玖珑府公寓是商用吗 因特指纹锁怎么更换密码 因特指纹锁怎么添加指纹 因特指纹锁常见问题及解决方法 元气骑士蓝币怎么刷元气骑士无限刷蓝币的方法元气骑士9999蓝币兑换码 降妖除魔跑当前猜一动物?跟十二生肖那个有关,说明下原因,打酱油的请离开。 猜生肖:扮鬼扮马无人及。配腾云驾雾。配降妖除魔。请问是猪还是猴还是龙? c++ 里面PChar是不是一个类型 Delphi里的PChar类型和C++中的哪个类型是相同的? 我感冒了,家里有四季感冒片,请问一次吃几片? 感康一顿吃了四片吃多了,有没有危险_百度拇指医生 您好,我想问下四季感冒片这个药孕妇能吃么? 受孕期吃了四季感冒片,对胎儿有影响吗 感冒了吃了四季感冒片,不知道有没有影响?感冒没好啊,有什么好的方法啊? 四季感冒胶囊一下吃了30片怎么办?女,20。 四季感冒片吃了多种维生素有影响吗 我家雏菊白天开,晚上闭,咋回事儿 天空的英语 天空的英语是什么? 怎么注销 热巴坐电梯才两个人就显示电梯超载是什么电影 对方欠钱不还名下没有资产怎么办 张云龙特别会哄小朋友,大家觉得张云龙温柔吗? 欠款人名下没有资产怎么办 学前儿童健康教育的重要性有哪些方面呢? 简述学前健康教育的意义。 宝宝可以吃紫苏吗