标题:
请问一下我这个C语言程序,这里的指针错了吗?怎么这样?
[打印本页]
作者:
15348420767
时间:
2020-12-8 19:44
标题:
请问一下我这个C语言程序,这里的指针错了吗?怎么这样?
mmexport1607427645610.png
(339.54 KB, 下载次数: 72)
下载附件
2020-12-8 19:40 上传
#include<reg51.h>
sbit s1 = P3^2;
sbit s2 = P3^3;
void delay(unsigned int n)
{
while(n--);
}
void yanshi(unsigned char a)
{
unsigned char b;
for(b = 0;b<a;b++)
{
TH0 =(65536 - 50000)/256;
TL0 = (65536 - 50000)%256;
TR0 = 1;
while(!TF0);
TF0 = 0;
}
}
void zuo()
{
unsigned char c = 0x01;
unsigned char *h;
unsigned char f;
h = &c;
for(f = 0;f<8;f++)
{
P1 = ~c;
delay(20000);
*c = *c<<1;
if(c == 0)
{
c = 0x01;
}
}
}
void you()
{
unsigned char e = 0x80;
unsigned char *p;
unsigned char b;
p = &e;
for(b = 0;b<8;b++)
{
P1 = ~e;
yanshi(4);
*e = *e>>1;
if(e ==0x00)
{
e = 0x80;
}
}
}
void main()
{
TMOD = 0x01;
EX0 = 1;
IT0 = 1;
PX0 = 1;
EX1 = 1;
IT1 = 0;
EA = 1;
while(1)
{
zuo();
}
}
void zd()interrupt 0
{
unsigned char j;
j = P1;
you();
P1 = j;
}
void zhongduan() interrupt 2
{
unsigned char j,i;
j = P1;
for( i = 0; i<3;i++)
{
P1 = 0x00;
yanshi(10);
P1 = 0xff;
yanshi(10);
}
while(!s2);
P1 = j;
}
作者:
MikeCai
时间:
2020-12-9 08:39
unsigned char c = 0x01;//c 是字符,不是指针
unsigned char *h; //h
h = &c; // h是指针,将字符 地址赋给指针是可以的
*c = *c<<1; //c 不是指针, 改为 :*h = (*h) << 1; 是可以的
作者:
i_could_have
时间:
2020-12-9 15:25
定义了指针h,但是后面没有用到这程序也用不到指针,直接对变量c进行操作就行,把*c=*c<<1改成
c=c<<1。如果是想练一下指针,那就改成*h=*h<<1。
作者:
suncat0504
时间:
2020-12-10 10:43
非指针变量,变量里面装的是值
指针变量,里面装的地址
uchar c=1 : 表示c这个单元里装的是uchar数据。&c 表示获得c这个单元所在的地址。
uchar *c :表示c这个单元里装是一个地址,这个地址里装的是一个uchar数据。*c就是取得这个uchar数据;而直接使用c,得到的是一个地址;
作者:
zhang442581807
时间:
2020-12-10 16:59
改成*h=*h<<1
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1