设有下列两个数组 array1(subscrip1,subscrip2) array2(subscrip3,subscrip4,subscrip5,subscrip6) 数组符号在符号表项中可以设立一个指向内情向量空间的指针,而在内情向量空间记录关于该数组的维数个数和每一维的元素个数,图913表示了array1及array2两个数组在符号表中内情向量的组织。
上面是从数组内情向量属性的基本性质出发所考虑的符号表相关组织。但对C语言程序中的数组,有它不同的语义定义。一个数组在C语言中被定义为(具有n维时) type array[subscrip1][subscrip2]…[subscripn] 它是元素为type定义的类型的一个N维数组,它的下标界分别为 subscrip1,subscrip2,…,subscripn。 在C语言中array符号可以看成是指向该数组整体的一个指针出现在程序中,该指针指向的目标是数组,其长度是整个数组的长度。C语言中除了 array [numb1] [numb2]…[numbn] 是表示为一个数组元素外。其它的表示方法 array[numb1],array[numb1][numb2],…, array[numb1]…[numbn-1]。 都认为是一个数组名,在程序中被作为指针。 array[numb1]是指向n-1维的数组的指针,其目标长为: subscrip2 * … * subscripn * sizeof(type) array[numb1][numb2]是指向n-2维的数组的指针,其目标长为: subscrip3 *…* subscripn* sizeof(type) … array[numb1][numb2]…[numbn-1]是指向一维数组的指针,其目标长为: subscripn * sizeof(type) |