首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

贰 | 数据类型3 —— 动态数组

System Verilog 引进的新的数据类型,他们所具有的优点:

1. 双状态数据类型(bit, byte, shortint, int, longint):具有更好的性能,更低的内存消耗。

2. 队列(int a[$]),动态数组(int a[]),关联数组(int a[string]):减少内存消耗,且自带搜索和分类功能。

3. 类(class)和结构(struct):支持抽象的数据结构。

4. 联合结构和合并结构:允许对统一数据有多种视图(view)。

5. 字符串(string):支持内建的字符序列。

6. 枚举类型(enum):方便代码编写,增加代码可读性。(工程实践中经常使用)

1

思维导图

2

思维导图大纲

动态数组

数组的宽度不在编译时给定,而在仿真时分配空间或调整宽度

声明采用 []

int dyn[];

数组一开始是空的,需使用 new[size] 操作符分配空间,同时在[]中指明宽度

可将数组名传给 new[] 构造符,将已有数组值复制到新数组中

dyn = new[20](src);

dyn.delete(); 删除所有元素

不能使用 delete(n) 删除其中一个元素

动态数组的内建子程序

delete()

size()

基本数据类型相同时,定宽数组与动态数组之间可以相互赋值,只有当元素数目相同时,动态数组才可以赋值给定宽数组

3

示例

定位11行,定宽数组没有 size() 内建子程序。

定位20行,当在 new 中使用表达式作为初始值时,左右两边赋值类型需要保持一致。

定位26行,当用动态数组赋值给定宽数组时,需要保持动态数组与定宽数组 size 一致,不一致将报 size 不匹配错误。而将定宽数组赋值给动态数组时,无需保证两者 size 一致,动态数组的 size 值将自动调整为赋值后定宽数组 size 的大小。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OmFYt5lvHh7fV2iN9AvWOnPQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券