符号 table 中是否有数组的标识符?
Are there array's identifiers in symbol table?
我知道符号table中有变量名和函数名,但是数组呢?符号 table 中是否有数组?
数组可以只是一个常规变量:如果您在任何函数定义之外将数组声明为全局变量(或静态变量),例如:
int myArray[256];
那么是的,全局变量的名称在符号 table 中,与任何全局变量一样。
如果在函数中声明:
int myFunction(void) {
int myArray[256];
...
}
然后,在当前线程的栈上保留space,作为局部变量处理。
在 C 语言中,数组只是保留 space 的第一个元素的常量地址,最多可以包含 N 个相同类型的元素。
我知道符号table中有变量名和函数名,但是数组呢?符号 table 中是否有数组?
数组可以只是一个常规变量:如果您在任何函数定义之外将数组声明为全局变量(或静态变量),例如:
int myArray[256];
那么是的,全局变量的名称在符号 table 中,与任何全局变量一样。
如果在函数中声明:
int myFunction(void) {
int myArray[256];
...
}
然后,在当前线程的栈上保留space,作为局部变量处理。
在 C 语言中,数组只是保留 space 的第一个元素的常量地址,最多可以包含 N 个相同类型的元素。