6.S081 学习笔记 - 指针练习
这是 MIT 6.S081 课程中的一个指针练习,要求在第二个 Lab 前完成。
在课程的 Guidance 中是这样说的:
Unless you are already thoroughly versed in C, do not skip or skim the pointer exercises above. If you do not really understand pointers in C, you will suffer untold pain and misery in the labs, and then eventually come to understand them the hard way. Trust us; you don't want to find out what "the hard way" is.
好在看了 K&R 的书,对指针有了基本的掌握,这个练习做起来还算顺利。
一些知识点:
printf
中的格式化字符串%p
用于打印指针指向的地址a[i]
和*(a + i)
是等价的,因此1[a]
相当于*(1 + a)
,也就是a[1]
- 指针加 1 实际是将地址加上指针指向的类型的大小
- 一般
int
类型是 4 字节,char
类型是 1 字节,具体因平台而异 AMD64
和RISC-V
处理器是小端序,最低有效字节存在最低地址处。如0x12345678
在内存中的存储顺序是0x78 0x56 0x34 0x12
1 |
|
输出:
1 |
|
6.S081 学习笔记 - 指针练习
http://blog.qzink.me/posts/6.S081学习笔记-指针练习/