读书人

指向变量的指针被改变 ?该如何解决

发布时间: 2012-08-14 10:39:58 作者: rapoo

指向变量的指针被改变 ???
//指向变量的指针被改变 ???
//程序精简如下
#include <stdio.h>
unsigned char mcys=10;//脉冲延时
void main(void)
{
unsigned char i;
unsigned char * const menu1[]={&mcys,&i,&i}; //这里有很多其它变量
(*menu1[0])++;
printf("%d",(int)mcys);//结果mcys=11; 如果加到程序中,mcys=10 ???谁知道为什么吗?
}

//我在staticunsigned char * const menu1[]加上static,就OK。为什么不加会变???

[解决办法]
这个肯定不太可能的啊,不要找编译器的问题啊,你反汇编看看,uVision printf是打印在串口啊,你用仿真芯片调试,直接导出那个mcys看看

读书人网 >C语言

热点推荐