假设我有变量:
Var question : array[1..50] of char;
当我这样做时:
question := 't'; //What is the correct way to change the value?
它返回一个错误:
Incompatible types: 'array[1..50] of Char' and 'Char'
注意:我希望最大字符串大小为 50 个字符,而不是 50 个不同的字符。
这个问题的原因是我在另一个单元中有一条记录(这只是一个基本示例,不是我上面实际写的)在该单元中我有一个记录,我不能使用字符串数据输入(或者有什么办法吗?如果有请解释一下)。我只需要知道如何为字符数组赋予值。
最佳答案
虽然 Delphi 字符串和字符数组相关,但它们并不相同。
Delphi 重载了字符串和文字(字符和字符串)对字符数组的赋值,但仅当数组下限为零时才有效。
以下代码适用于 D2007 和 Delphi XE:
var x : array[0..49] of char;
begin
x:='b'; // char literal
x:='bb'; // string literal
end.
如果我将 [0 更改为 [1],则会失败。此限制可能简化了处理此问题的语言帮助程序,并且该功能可能仅用于处理转换后的 C 结构,其中数组的下限始终为 0。
关于arrays - 如何为 Char 数组赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5801542/