Welcome

首页 / 软件开发 / Delphi / Delphi的字符及字符串[4] - 字符串、字符指针与字符数组

Delphi的字符及字符串[4] - 字符串、字符指针与字符数组2011-12-15 cnblogs 万一//字符串与字符数组var
arr: array[0..5] of Char;
str: string;
begin
{可以把字符串常量直接赋给字符数组; 但超界不行}
arr := "Delphi";
ShowMessage(arr); {Delphi}
{可以把字符数组直接赋给字符串变量}
str := arr;
ShowMessage(str); {Delphi}
{但不能把一个字符串变量赋给字符数组}
//arr := str; {错误}
{其实字符串内部也是包含了一个字符数组, 所以能索引访问, 不过它的索引起始于 1}
ShowMessage(str[1]); {D}
ShowMessage(arr[0]); {D}
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;