单片机C语言教程:C51指针的使用
#include //预处理文件里面定义了特殊寄存器的名称如 P1 口定义为 P1
void main(void)
{
//定义花样数据,数据存放在片内 CODE 区中
unsigned char code design[]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,
0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,
0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,
0xE7,0xDB,0xBD,0x7E,0xFF};
unsigned int a; //定义循环用的变量
unsigned char b;
unsigned char code * dsi; //定义基于 CODE 区的指针
do{
dsi = design[0]; //取得数组第一个单元的地址
for (b=0; b32; b++)
{
}
}while(1);
}
for(a=0; a30000; a++); //延时一段时间
P1 = *dsi; //从指针指向的地址取数据到 P1 口
dsi++; //指针加一,
为了能清楚的了解指针的工作原理,能使用 keil uv2 的软件仿真器查看各变量和存储器的值。编译程序并执行,然后打开变量窗口,如图。用单步执行,就能查到到指针的变量。 如图中所示的是程序中循环执行到第二次,这个时候指针 dsi 指向 c:0x0004 这个地址,这个地址 的值是 0xFE。在存储器窗口则能察看各地址单元的值。使用这种方法不但在学习时能 帮助更好的了解语法或程序的工作,而且在实际使用中更能让你更快更准确的编写程序或解 决程序中的问题。

c语言相关文章:c语言教程
存储器相关文章:存储器原理
评论