如何将变量存储到数组里面? 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++;
每次发生外部中断的时候却不能把数据存储到数组里面
展开
 我来答
██套の今██
2014-08-13 · 超过59用户采纳过TA的回答
知道答主
回答量:104
采纳率:100%
帮助的人:106万
展开全部
举个简单例子,希望你能明白,

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]);
希望对你有帮助!
lyf4713179
2014-08-13
知道答主
回答量:9
采纳率:0%
帮助的人:5.4万
展开全部
你的数组不是全局变量吧。

中断一结束,就会释放掉。
追问
数组是定义的全局变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
btx258
2014-08-13 · TA获得超过1011个赞
知道小有建树答主
回答量:1008
采纳率:60%
帮助的人:795万
展开全部
难道是因为SS没赋初始值?
更多追问追答
追问
不是,我赋的初值是0,而且我也加了volatile试了  也不行
追答
加了volatile还不行,我就很纳闷了。难道是这个函数没执行?
另外我还想到一个可能性,可能执行的时候,要赋值的那个“数据”已经被清空了。

可以调试运行吗?不行的话在这个前后加LOG试试,直接把LOG信息存文件里面也行。
确认下函数执行的时候,SS、数组、“数据”的值是否正常。按道理是不可能赋值失败的,只可能赋值弄错了的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式