C语言的表是不是就是数组?

[复制链接]
1973|32
 楼主| heweibig 发表于 2017-6-29 18:56 | 显示全部楼层 |阅读模式
C语言的表是不是就是数组?
zhanghqi 发表于 2017-6-29 18:58 | 显示全部楼层

C语言中能用查表方式访问数据么?
zhaoxqi 发表于 2017-6-29 18:59 | 显示全部楼层
查表方式双IO口流水灯(C51)
#include <reg51.h>   
   
#define uchar unsigned char   
#define uint unsigned int   
   
void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值255   
   
uint state[16] = {0xfffe, 0xfffd, 0xfffb, 0xfff7, //状态表   
                  0xffef, 0xffdf, 0xffbf, 0xff7f,   
                  0x7fff, 0xbfff, 0xdfff, 0xefff,   
                  0xf7ff, 0xfbff, 0xfdff, 0xfeff};   
   
void main()   
{   
    uchar i;   // 循环控制变量,兼有变址作用   
        
    while(1)   
    {   
        for(i = 0; i < 16; i++)   
        {   
            P2 = state[i] / 256;   // 查表将高字节送入P2口   
            P0 = state[i] % 256;   // 查表将低字节送入P0口   
            delay_ms(100);         // 延时100ms   
        }   
    }   
}   
void delay_ms(uchar ms)   
{   
    uchar i;   
    while(ms--)   
        for(i = 0; i < 124; i++);   
}
huangchui 发表于 2017-6-29 19:00 | 显示全部楼层
C中的数组就相当于汇编查表,不过注意声明数组的时候用code关键字声明(真对KEIL C51),不然会将表格copy到SRAM中的。
jiajs 发表于 2017-6-29 19:03 | 显示全部楼层

那上面那段程序就没有code关键字,什么后果呢
zhanghqi 发表于 2017-6-29 19:05 | 显示全部楼层
后果就是多浪费32字节RAM
zhenykun 发表于 2017-6-29 19:06 | 显示全部楼层

后果是表格copy到SRAM中执行。
运行结果都正确
wyjie 发表于 2017-6-29 19:07 | 显示全部楼层
用到给定值的数组,使用CODE放到ROM里面,51的内部RAM小,很容易会不够用的
jlyuan 发表于 2017-6-29 19:10 | 显示全部楼层
以前还没注意到这个问题
yszong 发表于 2017-6-29 19:12 | 显示全部楼层
反了,应该问C语言中的数组是不是就是表?
dengdc 发表于 2017-6-29 19:13 | 显示全部楼层
楼上说的对,就是个表,不过一般ram内存是很小的,不太建议直接用表存储大量数据
jiahy 发表于 2017-6-29 19:15 | 显示全部楼层

不建议使用太大的数组   这样会只能占用单片机有限的RAM   使用小型数组时  可以提高运算速度   这个看个人了
lizye 发表于 2017-6-29 19:17 | 显示全部楼层
必然不能这么任务,链表是有头尾的!
 楼主| heweibig 发表于 2017-6-29 19:18 | 显示全部楼层
嗯,那我按大家的说法挨个排查一下,先结贴啦,谢谢哈
sdlls 发表于 2017-6-29 23:02 | 显示全部楼层
顺序表是在计算机内存中以数组的形式保存的线性表
febgxu 发表于 2017-6-29 23:03 | 显示全部楼层
顺序表与数组都是数据结构
xiaoyaodz 发表于 2017-6-29 23:03 | 显示全部楼层
线性表?
fentianyou 发表于 2017-6-29 23:04 | 显示全部楼层
数组是将元素在内存中连续存放
selongli 发表于 2017-6-29 23:04 | 显示全部楼层
可以用用数组实现线性表
minzisc 发表于 2017-6-29 23:05 | 显示全部楼层
使用指针,这样的结构成为链表
您需要登录后才可以回帖 登录 | 注册

本版积分规则

869

主题

13089

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部