4720|6

58

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

急,数组能这样运算吗? [复制链接]

如下:INTre[4]是我通过串口接收回来的常数;
secondpage这个数组是固定值
现在我需要通过INTre[4]接收的数据,判断出secondpage数组中对应的数据赋给opennum[0]和opennum[1],如下,我这样计算有问题吗?总是不成功




a=INTre[4];
        /*计算开门号*/
        i1=4*(a-1)+63;
        i2=64+4*(a-1);
        opennum[0]=secondpage[i1];                
        opennum[1]=secondpage[i2];
       
        /*门号所对应的标志位位置计算*/
        if(INTre[3]==0x07)                     //发注册成功命令,即表示已占用,发送笑脸标记
                secondpage[65+4*(b-1)]=0x02;
        if(INTre[3]==0x0E)
                secondpage[65+4*(b-1)]=0x20;


此帖出自编程基础论坛

最新回复

先判断a在合理范围内,否则很容易出错。 另外,最好是在算完i1 .i2后,在代入下标前验证一下是否超出数组范围。 这是数组下标使用前都该做的比较严谨的做法。 另外,至于那个具体的运算方式,你要自己验证是否准确,其实方法很简单,就是直接代数值去验证,验证几个了基本也就可以了。 最后要说的是,对于指针,或者数组下标(其实是一个性质的东西,都是地址偏移量),要尽量避免出现加减以外的运算因为它本身不具有太明确的物理意义,而且特别容易出错。 但c语言不该自废神功,只是既然明知这样危险,就更加要做足够检查以防万一。  详情 回复 发表于 2015-10-26 14:10
点赞 关注
 

回复
举报

58

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
求高手解答。
此帖出自编程基础论坛
 
 
 

回复

6040

帖子

203

TA的资源

版主

板凳
 
从表面上看,没什么问题。
此帖出自编程基础论坛
 
 
 

回复

366

帖子

1

TA的资源

一粒金砂(高级)

4
 
你收到的a经过计算后得到的i1、i2会不会超过secondpage的范围
此帖出自编程基础论坛
 
 
 

回复

1891

帖子

2

TA的资源

纯净的硅(中级)

5
 
lcofjp 发表于 2015-10-25 16:26
从表面上看,没什么问题。

此帖出自编程基础论坛
 
个人签名
分享铸就美好未来。。。




 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

6
 
先判断a在合理范围内,否则很容易出错。
另外,最好是在算完i1 .i2后,在代入下标前验证一下是否超出数组范围。
这是数组下标使用前都该做的比较严谨的做法。

另外,至于那个具体的运算方式,你要自己验证是否准确,其实方法很简单,就是直接代数值去验证,验证几个了基本也就可以了。

最后要说的是,对于指针,或者数组下标(其实是一个性质的东西,都是地址偏移量),要尽量避免出现加减以外的运算因为它本身不具有太明确的物理意义,而且特别容易出错。
但c语言不该自废神功,只是既然明知这样危险,就更加要做足够检查以防万一。
此帖出自编程基础论坛

点评

好的,谢谢!我以后会注意的。  详情 回复 发表于 2015-10-27 12:03
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

58

帖子

0

TA的资源

一粒金砂(中级)

7
 
辛昕 发表于 2015-10-26 14:10
先判断a在合理范围内,否则很容易出错。
另外,最好是在算完i1 .i2后,在代入下标前验证一下是否超出数组 ...

好的,谢谢!我以后会注意的。
此帖出自编程基础论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表