向RAD Studio XE中的记录字段分配Pascal变量

问题描述 投票:0回答:1

任何人都可以评论问题出在哪里吗?

编译器错误说:错误:不兼容的类型:'数组'和'名称'在线错误:Student.s_name:= n;

代码如下。

program datafiles;

Uses WinCRT;

Type
    studentRecord = Record
        s_name: packed array[0..30] of char;
    end;

    name = packed array[0..30] of char;

Var
    Student: StudentRecord;
    n: name;

Begin

    readln(n);
    Student.s_name:=n;

end.
delphi pascal delphi-xe
1个回答
1
投票

Delphi语言文档中描述了分配问题:

Array Types and Assignments

[仅当数组具有相同类型时,它们才是分配兼容的。由于Delphi语言对类型使用名称等效性,因此以下代码将无法编译。

var
  Int1: array[1..10] of Integer;
  Int2: array[1..10] of Integer;
    ...
  Int1 := Int2; 

要使分配生效,请将变量声明为:

var
  Int1, Int2: array[1..10] of Integer; 

或:

type IntArray = array[1..10] of Integer;
var
  Int1: IntArray;
  Int2: IntArray;
© www.soinside.com 2019 - 2024. All rights reserved.