本文用白话来详解指针的意思和运用,如果网友们有建议,可以在下方评论。
了解指针首先要知道变量,例如:
int i = 0;
那么上面左边的i就是变量(即它的值可以变化的),又这个变量好比是一个仓库,这个仓库名就是i,这个仓库有编号,在C语言中对应的就是地址,比如编号为1的仓库里放着数字0,对应的C语言中就是,内存中对应的地址为1的空间存放着数字。
指针,从字面上的意思来理解的话,就是指着方向的一根针,实际上指针也是个变量,就是入同上面所说的一样,只不过指针是比叫特殊的变量。为什么它是特殊的变量呢?
解答:首先它是个变量,它有自己的地址(地址一般都是十六进制来表示的),这个地址有名字,这个地址的空间存着“数”,这个数比较特别,这个数是其他变量的地址,举例:
int i=0;
int *p;
p = &i;
第一行表示假设变量i的地址为0x0001(0x表示十六进制数),该地址里面装着0这个数;
第二行表示,定义一个指针变量,假设它的地址为0x0891,此时改地址里面没有装任何东西。
第三行表示:把指针指向i,意思是把变量i的地址存放在指针p里面,注意不是变量i里面装的值,即把0x0001装进地址为0x0891的空间里面。
下面为调试看看指针变量的地址和里面装的值,还有普通变量的地址和里面装的值