要了解他们区别首先就知道什么是指针? 那指针到底是个什么东西呢?
通俗点儿理解其实它就是就是一个存放地址的变量存储空间,当指针指向某个变量,这时这个指针里就存放了那个变量的地址。这就是我们常说的指针指向一个地址,意思是通过它能找到以它为地址的内存单元。利用指针我们可以直接获取变量中的值用,要是在指针前加 * 就是取其真值了(也就是被指向的变量的值)
举个例子:
如果一个整型变量int i,int* p=&i表示将 i 的地址存入整型指针变量即int*中 。
&i表示对i 取地址,返回值是i的地址。
假设i在内存中所存在的地址为xx0bd00a(随便写的)
也就是说 指针p中存放了xx0bd00a这个地址
当你操作这个p时就是直接操作了xx0bd00a这个地址中存放的东西,间接操作了变量i,这就是指针的作用。
那我们在看看内存是什么(其实上面已经描述很清楚了)?内存是实实在在的硬件,可以存放数据,地址是内存的标识,每一个地址都对应一个内存。所以内存和地址是一一对应密不可分的。
比如说内存就像一个个的小格子,每个格子的大小是一个字节,可以存放一个字节的数据,而指针地址呢,就是存放盒子标号的,我们得到指针,也就可以找到那个盒子了(当然也存在找不到的情况,那就是野指针和空指针,这里就不详细叙说了)。
网友评论