1.动态数组
定宽类型数组在编译时宽度就已经确定。动态数组最大的特点是可以在仿真运行时灵活调节储存量。
动态数组一开始声明时,需要利用'[ ]'来声明,而数组此时是空的,即0容量,需要利用'new[ ]'重新分配其空间;也可以在调用new[]时将数组名也一并传递。
int dyn[],d2[];//声明动态数组
initial begin
dyn=new[5];//给dyn分配5个元素
foreach(dyn[j]) dyn[j]=j;//对元素进行初始化
d2=dyn;//复制一个动态数组
d2[0]=5;//修改复制值
$display(dyn[0],d2[0]);//显示数值0和5
dyn=new[20](dyn);//分配20个数值并进行复制,注意,这20个数值中,有5个是低位复制过去的
dyn=new[100];//分配100个数值,之前的数值不复存在
dyn.delete();//删除所有元素
end
删除所有元素的方法有
dyn.delete();
dyn=new[0];
dyn='{0};
注意:int整型的默认值是0,integer的默认值是x
2.队列
队列结合了链表和数组的优点,可以在它任何地方添加或者删除元素,并且通过索引实现对任一元素的访问
队列的声明需要带有美元符号的下标:[$],队列元素的标号从0到[$].
队列不需要new[ ]去创建空间,只需要使用队列的方法为其增减元素,一开始其空间为0
队列的一个简