[学习笔记]

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

[复制链接]
252|6
手机看帖
扫描二维码
随时随地手机跟帖
wanglaojii|  楼主 | 2022-10-24 11:13 | 显示全部楼层 |阅读模式
查表方式双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++);   
}

使用特权

评论回复
tpgf| | 2022-11-4 09:04 | 显示全部楼层
在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

使用特权

评论回复
nawu| | 2022-11-4 09:20 | 显示全部楼层
数据结构是与语言无关的,用C可以实现,用C++也可以实现。当然要是你愿意,用汇编语言也是可以实现的。

而C语言中的数组就是连续的N多个大小相同的内存空间组成的更大的内存空间。

两个完全不是一个东西。

当然用C语言实现顺序表的时候,是要用到数组的。

使用特权

评论回复
aoyi| | 2022-11-4 10:11 | 显示全部楼层
从定义上来看,线性表和数组都是数据元素的有序集

使用特权

评论回复
zljiu| | 2022-11-4 10:35 | 显示全部楼层
数组有维度(比如三维数组)的概念而线性表没有,虽然我们可以通过设计一些含指针的数据结构的线性表,使之可以模仿多维数组的操作,但这已经超出了常规的线性表的概念。

使用特权

评论回复
gwsan| | 2022-11-4 10:47 | 显示全部楼层
数组和线性表上可进行的操作不一样。比如,一般我们不在数组上进行数据插入和删除的操作,同样,我们也无法直接通过数据序列来访问线性表中的数据单元(比如表中第i个元素)。

使用特权

评论回复
tfqi| | 2022-11-4 11:23 | 显示全部楼层
我们可以将一维的数组(注意是一维的)等同于线性表来理解,因为他们多数的性质都是类似的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则