51单片机编程中*是怎么一回事?

来源:百度知道 编辑:UC知道 时间:2024/05/29 16:51:57
这里有一段51单片机的程序,请问那个*P是什么回事?还有怎么没定义变量P就出来个P++?
void PutChar(char a,char b,char *n)
{
char i,*p;
while (*n != 0)
{
p = q + 12 * (*n-32);
SetPage(a + 1);
SetAddr(b);
for (i=0; i<6; i++)
{
X(*p);
p++;
}
SetPage(a);
SetAddr(b);
for (i=6; i<12; i++)
{
X(*p);
p++;
}
b = b + 7;
if ((b + 7) > 127)
{
b = 0;
if (a < 2 )
{
break;
}
else
{
a -= 2;
}
}
n++;
}
}
还有dat>>=1是什么意思????

*P是指指针变量,uchar i,*P;这里就定义了,假设p=0x30,那么*P就是指把0x30作地址,这个地址里面的数据就是*p了,P++是指地址加1,加多少据定义的数据类型而定,比如字符型就加1,整型加2.dat>>=1是指dat向右移一位,然后再给dat.

怎么没定义?

char *p;

不是么?

dat>>=1

就是将dat右移一位

定义了啊!char *p就时定义啊,它时一个指针。P++就是改变指针所指的变量,至于 data>>=1就是右移一位,

一楼正解了...