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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

posted @ 2020-05-10 19:05  winechord  阅读(103)  评论(0编辑  收藏  举报