指针探索之旅即将开始咯!
1.指针是什么?
指针就是用来存放内存地址的变量(即地址),指针实际上就是指针变量。
说到地址就必须想到 ‘&’--取地址符 ,&是用来取出变量存放在内存中的地址。
指针存放的是变量或者对象的内存地址,也被称为首地址。
2.指针的大小:指针大小只与地址线位数有关 。(也就是我们所说的多少位的机器有关)
记住32位机器是4个字节,64位机器是8个字节即可
这是一台64位机器上操作的结果。
这里我们可以想象一下:在一个32位的机器上,他的地址是由32个0或者1的二进制序列组成, 一个0或者1就需要一个bit(比特位)来存放,那么32个也就需要4个byte来存放
(1 byte=8bit)。所以一个指针大小就应该是4个字节。
同理在一个64位机器上,地址就需要64个0或1的二进制序列组成,相当于64个比特位,64个比特位=8个字节。
拓展:为什么是用字节做单位而不是用bit或kb呢?
让我们先来了解一下他们之间的进率:8bit=1byte,1byte=1024kb,1kb=1024mb.....
简单来说如果用其他的不是太小就是太大都会显得十分的笨拙。
3.指针类型
变量有类型,指针有也它的类型。
char*类型指针就是为了存放char类型的变量地址;
int*类型指针就是为了存放int类型的变量地址;
double*类型指针就是为了存放double类型的变量地址;
那指针类型的意义又是什么呢?......