如何在Delphi中定义Empty Char

时间:2012-03-08 13:44:49

标签: string delphi char

只是为了好奇,

为什么在Delphi中,如果我们通过以下方式定义一个空char:

a:Char;
a:='';

我们收到错误:不兼容的类型:'字符'和'字符串'

但是,如果我们放置

a:='a';

会没事的?

是否有必要通过以下方式定义空字符:a:=#0

2 个答案:

答案 0 :(得分:24)

char是单个(即恰好一个)字符。所以'a','∫'和'⌬'都可以,但不是'ab'(两个字符的字符串),'Hello World!' (十二个字符的字符串)或''(零字符串)。

但是,NULL字符(#0)是一个像任何其他字符一样的字符。

此外,字符数据类型实现为一个单词(在现代版本的Delphi中),即两个字节。如果将所有这些值0,1,...,2 ^ 16 - 1用于真实字符,那么您将如何在世界中代表您的“空字符”?

答案 1 :(得分:17)

没有空char这样的东西。 char必须有值。它是一种序数类型,一种简单的值类型。就像整数一样,总是有一个值,char也是如此。

#0不是空的char,它是值为0的字符,通常称为NUL