找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

请教一下C语言数组的使用问题

查看数: 2799 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-11-8 15:01

正文摘要:

我在用数组进行控制打印机,但是我想用另一个数组中元素来当自模数组的下标,现在测试只要是第一个变量取数组里的元素就会出现异常, 想请教一下:数组的下标可以是另外一个数组的元素吗(16进制元素unsigned char ...

回复

ID:624769 发表于 2021-11-9 21:05


试一下效果
ID:313048 发表于 2021-11-9 16:56
513489465 发表于 2021-11-9 16:33
我想问一下:unsigned char zifu[16]={0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39,0X41,0X42,0X43 ...

你为啥一定要在【】里面去运算,你完全可以在外面先运算之后再作为下标使用啊,你调试肯定要确定每一步都没有问题才对啊,你这只看最后结果去确定哪里出错是什么个操作?  
基本的调试都不会吗?
unsigned char  temp;
temp = (zifu-0x20)*12+N;  你先确定这个temp对不对你再去考虑显示的那个取值啥的问题不行?
非得一次性全部搞出来,没有中间过程,觉得这样写很顺眼?
基本的调试都不懂,明明能仿真  还问这么简单的问题。
ID:417328 发表于 2021-11-9 16:33
我想问一下:unsigned char zifu[16]={0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39,0X41,0X42,0X43,0X44,0X45};
这个数组的元素,如果要为A[]数组的下标。是不是得把zifu[]数组的元素变为整数才可以,刚才试了试把zifu[0]赋值给(int)SHU。放进去也是乱码;
ID:624769 发表于 2021-11-9 15:41

你把,你在 地板  发的 这两条代码的   正常的数组,出现异常的数组, Ctrl + F5   Debug  之后,看看出来的汇编代码,到底有什么差别,可以方便找到出错原因。
ID:313048 发表于 2021-11-9 10:59

那个异常的数组里面是print1[0]是你复制的时候打错了吧?还是说本身复制过来就这样。不应该是print1[1]吗?
首先你得确定你的print1[]这个数组里面的数字是没有问题的,如果是没错的话那就不应该有问题,因为数组是可以这样操作的,如果出来不对,肯定是你有程序对这个print1[]数组的操作产生的数据不对。
从你打印出来的那个2来看,很明显是取模的值向后移了,并不是从头开始读取,那么就应该是你的print1[]这个值取大了,为什么变大了肯定是你程序某个地方把值给改变了。
ID:592807 发表于 2021-11-9 09:03

2012里面为啥第2个数字2没事,第一个就有事?
ID:883242 发表于 2021-11-8 19:14
下标必须可以是其他数组元素,贴出错代码出来吧。
ID:313048 发表于 2021-11-8 16:58
是可以这样操作的,但是并不建议你这样使用,因为这样容易出现数组越界,如果不注意使用的话。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表