|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 广东梁百万 于 2021-4-7 21:47 编辑
C51单片机,初学C语言,做了指针的上机验证,程序以下——
我在按键那每按一次就执行一次下面其中一个指针测试函数,执行后在LCD1602那显示出变量 c 的值,
运算目的是 c = a * b ,只是我用指针 指向 a b c 作运算
第1次 指针测试函数2 执行后,c的值是9, 再按一次键 重复执行一次, c的值是27,再一次 是63 ,再一次 是 135 , ..........这明显是错误。
指针测试函数3 和指针测试函数4,得到的值始终是6, 这个正确。
那 指针测试函数2 到底是哪里出问题? 求解,谢谢。
unsigned char a=2;
unsigned char b=3;
unsigned char c=0;
unsigned int *DPTR1; //指针1
unsigned int *DPTR2; //指针2
unsigned int *DPTR3; //指针3
//--------------------------------
//--------------------------------
void testDPTR2() //指针测试函数2
{
DPTR1=&a;
DPTR2=&b;
DPTR3=&c;
*DPTR3 = (*DPTR1) * (*DPTR2);
}
//--------------------------------
void testDPTR3() //指针测试函数3
{
DPTR1=&a;
DPTR2=&b;
DPTR3=&c;
*DPTR3 = a * (*DPTR2);
}
//--------------------------------
void testDPTR4() //指针测试函数4
{
DPTR1=&a;
DPTR2=&b;
DPTR3=&c;
*DPTR3 = (*DPTR1) * b;
}
|
|