内存会划分为一个个内存单元(一个内存单元的大小为1byte),每个内存单元都有一个编号。32位的电脑有2^32个内存地址序列。
如果一个地址序列管理一个内存单元,那么电脑就能管理2^32个字节,即4294967296个字节,是4294967296/1024=4194304kb,是4194304/1024=4096MB,是4GB.
比如a:
地址也被称为指针,存放指针或者说地址的变量就是指针变量
通过对指针的解引用找到指向的对象:
指针变量的大小取决于一个地址存放的时候需要多大的空间。32位机器上的地址:32bit位,4个字节,所以指针变量的大小是4byte。
注意:
两个地址或者说两个指针相减,得到的相差的类型的个数。
注意:
注意这个a[0]的值通过指针改变了。所以打印的是6。
1. *p=&a[1]时,指针指向数组的第二个元素;
2. y=(*--p)++;时,先执行括号里面的*--p,先进行自减,也就是说此时指针p向前移动了一格,即此时指向数组的第一个元素。
3. y=(*p)++;先把此时p所指的值赋值给y,即第一个元素5,然后做自增运算,即p所指的值增加了1,为6,输出数组的第一个元素a[0]为6。
注意:
指针变量是可以指向数组后的内存单元的: