从单片机基础到程序框架(全集 2019pdf版).pdf - 第260页

b 为 1。 c 为 24。 d 为 12。 e 为 3。 【59.9 如何在单片机上练习本章节 C 语言程序?】 直接复制前 面章节中第十 一节的模板程 序, 练习代码时只需要 更改 “ C 语言学习区 域” 的 代码就可 以了, 其它 部分的 代码 不要动 。编 译后 ,把程 序下 载进带 串口 的 51 学 习板, 通过 电脑 端的串 口助 手软件 就可 以观 察到不同的 变量数值,详 细方法请看第 十一节 内容。

100%1 / 836
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
View(b); //把第 2 个数 b 发送到电脑端的串口助手软件上观察。
View(c); //把第 3 个数 c 发送到电脑端的串口助手软件上观察。
View(d); //把第 4 个数 d 发送到电脑端的串口助手软件上观察。
View(e); //把第 5 个数 e 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
1 个数
十进制:0
十六进制:0
二进制:0
2 个数
十进制:1
十六进制:1
二进制:1
3 个数
十进制:24
十六进制:18
二进制:11000
4 个数
十进制:12
十六进制:C
二进制:1100
5 个数
十进制:3
十六进制:3
二进制:11
分析:
a 0。
b 1。
c 24。
d 12。
e 3。
【59.9 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改C 语言学习区域”代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口 51 习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。
第六十节: 指针在变量(或常量)中的基础知识。
【60.1 指针与普通变量的对比。
普通变量和指针都是变量,都要占用 RAM 资源。普通变量的 unsigned char 类型占用 1 个字节,unsigned
int 类型占用 2 个字节,unsigned long 类型占用 4 个字节。但是指针不一样,指针是一种特殊的变量,unsigned
char*,unsigned int*,unsigned long*这三类指针 C51 编译器下都是一样占用 3 个字节。不同系统的指针
到底占用多少字节是由 C 编译根据片的件寻范围决定,比 32 位单机的针往都是 4
个字节,而某些 64 位的 PC 机,指针可能是 8 个字节,这些内容大家只要有个大概的了解即可指针是普通
变量的载体,平时我们处理普通变量,都是可以“直接”操作普通变量本身。而学了指针之后,我们就多一
种选择,可以通过指针这个载体来“间接”操作某个普通变量“直接”不是比“间接”更好更高效吗?
什么要用“间接”?其实在某些场合,指针的“间接”操作更加灵活更加高效,这个要看具体的应用。
指针既然是普通变量的“载体”那么普通变量就是“物“载体”与“物”之间可以存在一对多的
系。也就是说,一个篮子(载体),可以盛放鸡蛋(物),也可以盛放青菜(物),也可以盛放水果(物)
但是,在这里,一个篮子在一个时间段内,只能承载一种物品如果想承载其它物品,必须先把当前物品“卸
下来,然后再“装”其它物品”这里有两个关键动作“装“卸”就是指针在处理普通变量时的“绑定
某个指针与某个变量发生“绑定”,就已经包含了先“卸”后“装”这两个动作在其中
题外话多说一句,刚才提到,unsigned int 类型占用 2 个字节,这个是 C51 编译器下的情况。如果
是在 stm32 单片机的编译器下,unsigned int 类型是占用 4 个字节。
【60.2 指针的定义。
跟普通变量一样,指针也必须先定义再使用。为了与普通变量区分开来,指针在定义的时候多加了一个
星号“*”,例子如下:
unsigned char* pu8; //针对 unsigned char 类型变量的指针。凡是指针都是占 4 个字节!
unsigned int* pu16; //针对 unsigned int 类型变量的指针。凡是指针都是 4 个字节!
unsigned long* pu32; //针对 unsigned long 类型变量的指针。凡是指针都是 4 个字节!
既然指针都是 4 个字节,为什么还要区分 unsigned char*,unsigned int* pu16,unsigned long* pu32
这三种类型?因为指针是为普通变(或常量)而生,所以要根据普通变量或常量)的类型定义对应的指
针。
【60.3 指针与普通变量是如何关联和操作的?】
指针在操作某个变量的时候,必须先跟某个变量关联起来,这里的关联就是“绑定“绑定”后,才可
以通过指针这个“载体”来“间接”操作变量。指针与普通变量在“绑定”的时候,需要用到“&”这个
号。例子如下:
unsigned char* pu8; //针对 unsigned char 类型变量的指针。凡是指针都是占 4 个字节!
unsigned char a=0; //普通的变量
pu8=&a; //指针与普通变量发生关联(或者说绑定
*pu8=2; //通过指针这个载体来处理 a 这个变量,此时 a 从原来的 0 变成了 2。