指针的那点事儿
要先理解指针,我们需要了解变量在C语言中是如何储存的。
比如:我们申请一个变量int value;
C语言会在你的内存中找到一个位置(这个位置可以用16进制的数表示)然后占用几个字节,例如整型变量占用了4个字节,于是就在该地址之后占用四个数。这里我们假设value变量的地址为000000000262FE12
,占用四个字节后地址为000000000262FE16
。
我们假设一个场景:有许多许多的盒子,每个盒子上都有编号,盒子里面放着变量。盒子上的编号便是地址。我们可以设这个编号也是一个变量,该变量便是指针变量,指针变量的值对应的是一个变量的地址。
假设我们定义一个指针p。
经常使用的符号有三个:*、&、**
用printf函数查看地址
int a;
printf("%p",&a)
其中&用于传递变量地址:
int a=1,*b,c
b=&a
如果c=&b
会报错,因为地址只能传给指针变量,不能传给普通的变量