如何在Delphi中表示空终止的字符串数组?

时间:2014-04-18 22:16:43

标签: c arrays delphi null

如何在Delphi中表示此C代码?

static char *mylist[] = {"aaa", "bbb", "ccc", NULL};

我可以用

创建我的数组
keywords : array[0..3] of string;
keywords[0] := 'aaa';
keywords[1] := 'bbb';
keywords[2] := 'ccc';
//Compiler error -> E2010 Incompatible types: 'string' and 'Pointer' 
keywords[3] := nil; 

2 个答案:

答案 0 :(得分:6)

C / C ++中的

char*在Delphi中是PAnsiChar,例如:

const
  mylist: array[0..3] of PAnsiChar = ('aaa', 'bbb', 'ccc', nil);

或者:

var
  mylist: array[0..3] of PAnsiChar;

mylist[0] := 'aaa';
mylist[1] := 'bbb';
mylist[2] := 'ccc';
mylist[3] := nil;

答案 1 :(得分:2)

在Pascal中,数组和字符串是与指针不同的类型,因此您无法分配nil指针。

无论如何,您可能不需要特殊的令牌来终止您的阵列。这是一个C语言。

如果您想循环遍历数组,只需执行以下操作:

for word in keywords do
    writeln(word)