Zei*_*ina 13 delphi string char
只是为了好奇,
为什么在Delphi中,如果我们通过以下方式定义一个空char:
a:Char;
a:='';
Run Code Online (Sandbox Code Playgroud)
我们得到一个错误:不兼容的类型:'Char'和'string'
但是,如果我们放置
a:='a';
Run Code Online (Sandbox Code Playgroud)
没事的?
是否有必要通过定义一个空字符:a:=#0
?
And*_*and 25
char是单个(即恰好一个)字符.所以'a','∫'和'⌬'都可以,但不是'ab'(两个字符的字符串),'Hello World!' (十二个字符的字符串)或''(零字符串).
但是,NULL字符(#0)是一个像任何其他字符一样的字符.
此外,字符数据类型实现为一个单词(在现代版本的Delphi中),即两个字节.如果将所有这些值0,1,...,2 ^ 16 - 1用于真实字符,那么您将如何在世界中代表您的"空字符"?
Dav*_*nan 17
没有空的东西char
.A char
必须有价值.它是一种序数类型,一种简单的值类型.就像一个整数一样,总是有一个值,一个也是char
.
该值#0
不是空的char
,它是值为0的字符,通常称为NUL
.