• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi的字符及字符串[4]-字符串、字符指针与字符数组

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

//字符串 < > 字符数组
var
  arr: array[0..5] of Char;
  str: string;
begin
  {可以把字符串常量直接赋给字符数组; 但超界不行}
  arr := 'Delphi';
  ShowMessage(arr); {Delphi}

  {可以把字符数组直接赋给字符串变量}
  str := arr;
  ShowMessage(str); {Delphi}

  {其实字符串内部也是包含了一个字符数组, 所以能索引访问, 不过它的索引起始于 1}
  ShowMessage(str[1]); {D}
  ShowMessage(arr[0]); {D}

  {但不能把一个字符串变量赋给字符数组}
  //arr := str;     {错误; 这需要用其他手段实现, 譬如复制或移动内存}
end;


//字符数组 > 字符指针
var
  arr: array[0..6] of Char;
  p: PChar;
begin
  arr := 'Delphi';
  
  {如果直接把字符数组给字符指针, 结果不保险, 因为字符指针要找空字符(#0)结束}
  {把数组的最后一个元素给 #0 就可以了}
  arr[Length(arr)-1] := #0;
  p := arr;
  ShowMessage(p); {Delphi}

  {假如把 #0 给到中间会怎样?}
  arr[3] := #0;
  p := arr;
  ShowMessage(p); {Del; 给截断了}
end;


//字符串常量 > 字符数组常量
const
  arr1: array[0..5] of Char = 'Delphi';
  arr2: array[0..5] of AnsiChar = AnsiString('Delphi');
begin
  ShowMessage(arr1[0]); {D}
  ShowMessage(arr2[0]); {D}
end;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi自定义类中的“构造函数”与“析构函数”发布时间:2022-07-18
下一篇:
delphi秒计算分钟、小时函数发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap