《边学边用攻破C语言》第18-19集 指针的用法

学指针之前,需要知道单片机内存地址的概念。例如STM32单片机的内存地址是从0x2000 0000开始的,每个地址代表一个字节。

学指针,需要知道两个符号,一个是&,一个是*。

符号&加变量名,表示这个变量在内存中的地址,变量的值,就是内存中这个地址的值。

例如:定义一个8位变量x,并且给x赋值为30。那么“&x”的值就是x这个变量在内存中的地址,内存中这个地址存放的值就是30。

符号&加数组名,表示这个数组在内存中的首地址。

例如:定义一个8位数组y,那么&y就是这个数组在内存中的首地址,&y=&y[0]。

定义一个指变量,用符号*加到变量前面即可。

例如:

uint8_t *x;//定义一个指针变量

另外,*和变量之间,是可以有空格的

例如:

uint8_t * x;

加了空格,和上边不加空格,都是可以的。

重点:“*”这个符号就是用来指向地址中的值的。

例如:定义了一个指针变量x之后,x就是一个内存地址,*x就是指向这个内存地址的变量。

x++,就表示这个内存的地址+1,如果首地址指向一个8位变量数组的首地址的话,x++后的值,就表示这个数组中第二个变量的地址。

只要理解了&和*所表示的意思,以及“内存地址”和“地址中放了什么数据”,再去用指针,就容易多了。

边学边用攻破C语言

1080P高清视频和程序下载地址:点击进入