如何将变量存储到数组里面? 10
为什么定义数组:unsignedchardatX[10],datY[10];在程序里面:datX[0]=数据;datY[0]=数据;......可以把数据存储到数组里面。...
为什么
定义数组:
unsigned char datX[10],datY[10];
在程序里面:
datX[0]=数据;
datY[0]=数据;
......
可以把数据存储到数组里面。
当我这样写的时候却不能把数据存储到数组里面:
定义数组:
unsigned char datX[10],datY[10];
定义变量:
unsigned char SS;
在INT0中断函数里面:
datX[SS]=数据;
datY[SS]=数据;
SS++;
每次发生外部中断的时候却不能把数据存储到数组里面 展开
定义数组:
unsigned char datX[10],datY[10];
在程序里面:
datX[0]=数据;
datY[0]=数据;
......
可以把数据存储到数组里面。
当我这样写的时候却不能把数据存储到数组里面:
定义数组:
unsigned char datX[10],datY[10];
定义变量:
unsigned char SS;
在INT0中断函数里面:
datX[SS]=数据;
datY[SS]=数据;
SS++;
每次发生外部中断的时候却不能把数据存储到数组里面 展开
3个回答
展开全部
举个简单例子,希望你能明白,
1、下面输出结果是"jim",而不是"tom",
是因为数组中保存的都是指向json对象a的地址,
dd[0],dd[1],dd[2],dd[3]对象指向的内存地址相同,
当修改其中一个dd[0]的属性值的时候,数组所有元素指向的对象属性值都改变了。
var dd = [];var a = { "cname": "tom" };for (var i = 0; i <4; i++) { dd[i] =a;}dd[0].cname = "jim";alert(dd[2].cname);2、下面输出结果是0,而不是1,
是因为数组元素dd[0],dd[1],dd[2],dd[3]对应的内存地址都不同,互不干扰。
var dd = [];var a = 0;for (var i = 0; i <4; i++) { dd[i] =a;}dd[0]=1;alert(dd[2]);
希望对你有帮助!
1、下面输出结果是"jim",而不是"tom",
是因为数组中保存的都是指向json对象a的地址,
dd[0],dd[1],dd[2],dd[3]对象指向的内存地址相同,
当修改其中一个dd[0]的属性值的时候,数组所有元素指向的对象属性值都改变了。
var dd = [];var a = { "cname": "tom" };for (var i = 0; i <4; i++) { dd[i] =a;}dd[0].cname = "jim";alert(dd[2].cname);2、下面输出结果是0,而不是1,
是因为数组元素dd[0],dd[1],dd[2],dd[3]对应的内存地址都不同,互不干扰。
var dd = [];var a = 0;for (var i = 0; i <4; i++) { dd[i] =a;}dd[0]=1;alert(dd[2]);
希望对你有帮助!
展开全部
你的数组不是全局变量吧。
中断一结束,就会释放掉。
中断一结束,就会释放掉。
追问
数组是定义的全局变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
难道是因为SS没赋初始值?
更多追问追答
追问
不是,我赋的初值是0,而且我也加了volatile试了 也不行
追答
加了volatile还不行,我就很纳闷了。难道是这个函数没执行?
另外我还想到一个可能性,可能执行的时候,要赋值的那个“数据”已经被清空了。
可以调试运行吗?不行的话在这个前后加LOG试试,直接把LOG信息存文件里面也行。
确认下函数执行的时候,SS、数组、“数据”的值是否正常。按道理是不可能赋值失败的,只可能赋值弄错了的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询