本文主要是介绍基于proteus的51单片机仿真实例四十九、C语言数组的指针演示实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、指向数组的指针
一个变量有地址,一个数组元素也有地址,所以可以用一个指针指向一个数组元素。如果一个指针存放了某数组的第一个元素的地址,就说该指针是指向这一数组的指针。数组的指针即数组的起始地址。例如:
unsigned char a[]={0,1,2,3};
unsigned char *p;
p=&a[0];将数组a的首地址存放在指针变量p中。
经上述定义后,指针p就是数组a的指针。C语言规定,数组名代表数组的首地址,也就是第一个元素的地址。所以p=&a[0];可以写作p=a;
p指向数组a的首地址后,p+1就指向数组的第二个元素a[1];依此类推,p+i指向第i个元素。
引用数组元素可以用数组元素的下标(如a[i]),但使用指针速度更快,且占用内存少。这也是使用指针的优点和精华所在。
2、本实例使用指针数组控制P0口的8位LED循环点亮。
3、在keil c51中新建项目ex38,编写如下程序代码,编译并生成ex38.hex文件。
//实例38:用数组的指针控制P0口的8位LED循环点亮
#include <reg51.h> //包含头文件
void delay(void) //延时函数
{
unsigned char i,j;
for(i = 0;i < 250;i++)
for(j = 0;j <250;j++);
}
void main(void)
{
unsigned char i;
unsigne
这篇关于基于proteus的51单片机仿真实例四十九、C语言数组的指针演示实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!