1、内存和地址
(1)边界对其:在要求边界对齐的机器上,整型值存储的起始位置只能是某些特定的字节,通常是2或4的倍数。
(2)内存中的每个位置由一个独一无二的地址标识。
(3)内存中的每个位置都包含一个值。
(4)下面显示了5个整数,使用名字来代替地址,这些名字就是我们所称的变量,并且每个都位于自己的字中。
这些变量给了我们一种方便的方法记住地址,但是硬件仍然通过地址访问内存位置。
2、指针变量的内容
(1)指针的初始化是用&操作符完成的,它用于产生操作数的内存地址。
(2)变量的值就是分配给该变量的内存位置所存储的数值。
当一个指针和一个整数量执行算数运算时,整数在执行加法运算前始终会根据合适的大小进行调整。这个“合适的大小”就是指针所指向类型的大小,“调整”就是把整数值和“合适的大小”相乘。
如果两个指针都指向同一个数组中的元素,那么他们可以执行>/>=/</<=等关系运算,用于判断它们在数组中的相对位置。
3、NULL指针
它作为一个特殊的指针变量,表示不指向任何东西。
4、指针、间接访问和左值
指针变量作为左值,并不是因为它们是指针,而是因为它们是变量。对指针变量进行间接访问表示我们应该访问指针所指向的位置。
指针加上一个整数的结果是另一个指针。
通过一个指针访问它所指向的地址的过程称为间接访问(indirection)或解引用指针(dereferencing the pointer)。用于执行间接访问的操作符是单目操作符*。 执行间接访问的操作记法常用下图表示。箭头起始于方框内部,因为它表示存储于该变量的值。同样箭头指向一个位置,而不是存储于该位置的值。