符號表中陣列名稱的表示是什麼?
它是一種資料結構,包含每個識別符號的資料,以及識別符號屬性的欄位。這種資料結構使我們能夠快速找到每個識別符號的資料,並快速儲存或檢索該記錄的資訊。
每次在原始碼文字中遇到名稱時,都會搜尋符號表。當找到新的名稱或有關現有名稱的新資料時,符號表的內容會發生修改。因此,符號表應該具有有效的結構,以便建立表中儲存的資料,以及將新條目插入到符號表中。
此表示法用於在符號表中表示陣列名稱及其維度和其他屬性。
陣列名稱可以在符號表中以兩種不同的方式表示。
- 固定數量的維度
- 可變數量(無限制)的維度。
固定數量的維度
以 FORTRAN 為例,其中陣列的維度數量限制為 3,圖中顯示了符號表中陣列的表示。

- 包含 A 的字表示陣列的維度。A 長 2 位。
| 位 1 | 位 2 | 陣列描述 |
|---|---|---|
| 0 | 0 | 不是陣列 |
| 0 | 1 | 一維 |
| 1 | 0 | 二維 |
| 1 | 1 | 三維 |
- UL1、UL2、UL3 表示陣列每個維度的上限。陣列的上限可以是形式引數。
對於這種可能性,我們為 B 提供了 3 位來定義三個可能的限制中的任何一個是否是形式引數。
| 0 | 1 | 0 |
這裡第 i 位為 1 表示 ULi 是形式引數。
在上述情況下,第 2 位為 1,因此 UL2 作為形式引數傳遞,並且符號表中的 UL2 現在將包含指向包含 UL2 值的符號表記錄的指標。
示例 1 - 考慮 FORTRAN 中的以下子程式。
SUBROUTINE S (ARRAY, A, B)
INTEGER A, B
REAL ARRAY (5, A, B)
構造此子程式中陣列的符號表記錄。
解決方案

∴ UL1 = 5
UL2 = 指向名稱 A 的記錄的指標。
UL3 = 指向名稱 B 的記錄的指標。
陣列維度無限制的連結陣列表示
- 符號表將儲存 n 陣列的多個維度。
- 它包含一個指向陣列的指標,該陣列包含第一維度的上下限,並且此陣列連線到另一個數組,該陣列包含第二維度的上下限,依此類推。

優點
- 方便隨機訪問符號表。
- 提高了可訪問性。
- 易於維護資訊。
缺點
- 指標間接和懸空引用問題。
- 每個維度都需要單獨的陣列。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP