1、C Operators
Operator Precedence
2、Arrays
1、Pointing to Different Size Objects
2、sizeof()
3、 Struct Alignment
四字节边界:指的是内存地址能够被4整除的情况。在计算机内存中,每个存储位置都有一个唯一的地址。当数据存储在以4为间隔的地址上时,就说它位于4字节边界上。这是因为4字节(等同于32位)的数据块在这些地址上能够得到最优的存取效率。如果我们有一个内存地址序列,从0开始计数,则地址0, 4, 8, 12等都是4字节边界的地址。这意味着一个32位(或4字节)的数据块可以从这些地址开始存储,而不会跨越不同的4字节边界。
“Half-word boundary” 在计算机内存中通常指的是2字节对齐的边界:一个2字节对齐的边界意味着数据应该存储在内存地址是2的整数倍的位置上。例如,内存地址0, 2, 4, 6, 8等都是2字节边界的地址。与4字节边界类似,半字边界的对齐通常是为了优化内存访问的性能。不遵守这种对齐要求可能会导致性能下降或者,在一些严格要求对齐的系统中,可能会导致运行错误。
如下图,要做到对齐的话,需要填充到多少字节?
但是可以看出这样不够节省空间,有没有节省空间的方法呢?
4、Array Basics
Accessing in Array
Array and Pointers
Array and Pointer Example
Arrays Stored Differently Than Pointers
Address of an array is meaningless, it just happens to have the same value as the address of the first element of the array.
Arrays and Functions
3、Strings
1. C String Standard Functions
2. String Examples
4、More pointers
1、Pointer Arithmetic
2、Increment and Dereference
2个例题:
2、 Pointer Misc
Pointers and Allocation
Pointers and Structures
Pointers to Pointers