cmu15213 L8 Machine‐Level Programming IV: Data
Arrays
One‐dimensional
这里有一个例子,比如现在有 char *p
,当执行 p++
时,等价于执行 p+=1
,而对于 int *ip
,执行 ip++
则等价于执行 ip+=4
。
[]
的优先级比 *
高
可认为 A2
是指针数组(指针的数组,数组的每个元素是指针)
A3
是数组指针(数组的指针,A3
本身是一个指针,这个指针指向一个数组)
Multi‐dimensional (nested)
Multi‐level
univ
本质是一个数组,这个数组有三个元素,每个元素是一个指针。
这个地方很有意思,nested array 相当于通常的二维数组,multi-level array 则比较特殊。他们两者的地址计算方法是不同的。
这个图很棒。
Structures
Allocation
Access
Alignment
Floating Point