Variants单元,无意中在FPC\2.0.4\doc\rtl.pdf中翻到的
用其定义变量可以使该变量变成任意类型!
真的????
定义方法
uses variants
var a:variant;
实现uses variants;
var a:variant;
b:char;
c:longint;
d:string;
e:boolean;
begin
b:='a';
c:=65;
d:='aa';
e:=true; //注意variant类型不能用于输入语句,只能赋值
a:=b; write(a);
a:=c; write(a);
a:=d; write(a);
a:=e; write(a);
end.
结果……
输出:
a65aaTrue
*了个**……
然而,评测机可以用这个吗?
我测试了一下各个评测的站点
洛谷:AC
NOI OpenJudge:AC
vijos:MemoryLimitExceeded
咳咳那么说这就可以用了?
数组??可以定义为数组吗?
可以定义为数组……不能赋值为数组……
uses
variants;
var
a:array[1..100] of longint;
x:variant;
begin
fillchar(a,sizeof(a),6);
x:=a;
end.
编译错误
但是我们可以这样
var
x:array[1..100] of variant;
并没有什么*用啊
但是我觉得在平时刷题的时候,variant单元还是非常有用的,可以有效减小内存,AC一些题目
各位觉得?
用其定义变量可以使该变量变成任意类型!
真的????
定义方法
uses variants
var a:variant;
实现uses variants;
var a:variant;
b:char;
c:longint;
d:string;
e:boolean;
begin
b:='a';
c:=65;
d:='aa';
e:=true; //注意variant类型不能用于输入语句,只能赋值
a:=b; write(a);
a:=c; write(a);
a:=d; write(a);
a:=e; write(a);
end.
结果……
输出:
a65aaTrue
*了个**……
然而,评测机可以用这个吗?
我测试了一下各个评测的站点
洛谷:AC
NOI OpenJudge:AC
vijos:MemoryLimitExceeded
咳咳那么说这就可以用了?
数组??可以定义为数组吗?
可以定义为数组……不能赋值为数组……
uses
variants;
var
a:array[1..100] of longint;
x:variant;
begin
fillchar(a,sizeof(a),6);
x:=a;
end.
编译错误
但是我们可以这样
var
x:array[1..100] of variant;
并没有什么*用啊
但是我觉得在平时刷题的时候,variant单元还是非常有用的,可以有效减小内存,AC一些题目
各位觉得?