谁帮我看看这个c语言指针哪写错了

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:12:23
这个是我的程序,请帮看看,就是那个for循环过不了,提示:FGH5T.C(22): error C187: not an lvalue 希望大大们帮看看!
#include<reg52.h>
unsigned int l[11]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0xff},cont;
unsigned int r[11]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X18,0x7f};
void miao();
void main()
{
while(1)
{
miao();

}
}
void miao()
{
unsigned int xsyc,st[6]={0,0,0,0,0,0};
unsigned int *p;
p=st;
for(*p=0;*p<=2;*p++)
{
for(*(p+1)=0;*(p+1)<10;*(p+1)++)
{
for(*(p+2)=0;*(p+2)<6;*(p+2)++)
{
for(*(p+3)=0;*(p+3)<10;*(p+3)++)
{
for(*(p+4)=0;*(p+4)<6;*(p+4)++)
{
for(*(p+5)=0;*(p+5)<10;*(p+5)++)
{
for(xsyc=0;xsyc<404;xsyc++)
{
P2=0xf8;
P0=l[*(p+5)];
for(cont=0;cont<46;cont++){}
if(*(p+4)==0&&*(p+5)==0)

受不鸟了,你的P0,P1,P2之类的改成P[0],P[1],P[2]。
这才是指针的用法。
编译器提示你你的左值不是变量。

左值问题。
unsigned int xsyc,st[6]={0,0,0,0,0,0};
unsigned int *p;
p=st;
for(*p=0;*p<=2;*p++)
首先,你p指向st[]数组的首地址,那么*p就等于0了,
而你*p=0,岂不是把0赋给一个常量吗?这是不对,常量不能赋给常量。