打印
[C语言]

C51结构体中存在数组,如何引用?

[复制链接]
2606|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nbsmaps|  楼主 | 2015-5-9 10:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题一:如何引用结构体中的数组
如:struct  student
     { uchar   a[8];
        uchar b;
        uint    c[3];
     }one;
引用:one.a[7] 这样行不行,目的要取出a数组中第三个值,7个值
问题二:多维数组的指针引用。
uchar a[8][20];
uchar *p;
p=&a;
要取出a[2][3]这个值,指针应如何操作?
谢谢了,在线等

相关帖子

沙发
ayb_ice| | 2015-5-9 16:51 | 只看该作者
one.a[7] 这个可以的

定义指向二维数组的指针
uchar (*p)[20];
然后
p = &a[0];
if(p[1][19] == 0x0){

}
就可以了

使用特权

评论回复
板凳
hk199500| | 2015-5-9 18:33 | 只看该作者
学习了

使用特权

评论回复
地板
hk199500| | 2015-5-9 18:34 | 只看该作者
定义指向二维数组的指针
uchar (*p)[20];
然后
p = &a[0];
if(p[1][19] == 0x0){

}
就是这段没看懂

使用特权

评论回复
5
nbsmaps|  楼主 | 2015-5-9 19:50 | 只看该作者
意思是每个指针指向一维数组?那用指针反而不方便了

使用特权

评论回复
6
nbsmaps|  楼主 | 2015-5-9 19:50 | 只看该作者
二维数组在内存中的存储是怎样的?应用一个指针能全访问了

使用特权

评论回复
7
wind~风| | 2015-5-9 20:34 | 只看该作者
a[2][3]可以直接用p+2*20+3访问,另外2楼的意思是定义数组指针,楼主后面所说的每一个指针指向一个一维数组应该是uchar *p[8]这样子定义

使用特权

评论回复
8
diweo| | 2015-5-10 08:50 | 只看该作者
本帖最后由 diweo 于 2015-5-10 08:52 编辑

相似但不同的代码多写点,然后软件仿真,设几个断点,好好对比,这样才能记得牢。

使用特权

评论回复
9
ayb_ice| | 2015-5-11 08:53 | 只看该作者
wind~风 发表于 2015-5-9 20:34
a[2][3]可以直接用p+2*20+3访问,另外2楼的意思是定义数组指针,楼主后面所说的每一个指针指向一个一维数组 ...

看清楚了吗

使用特权

评论回复
10
wind~风| | 2015-5-11 12:00 | 只看该作者

怎么没看清楚还请指教,,你那个定义的意思是数组指针,指针指向一个长度为20的uchar型数组

使用特权

评论回复
11
ayb_ice| | 2015-5-11 14:12 | 只看该作者
wind~风 发表于 2015-5-11 12:00
怎么没看清楚还请指教,,你那个定义的意思是数组指针,指针指向一个长度为20的uchar型数组 ...

也对,就是指向二维数组的指针

使用特权

评论回复
12
wind~风| | 2015-5-11 21:07 | 只看该作者
ayb_ice 发表于 2015-5-11 14:12
也对,就是指向二维数组的指针

嗯,谢谢

使用特权

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

本版积分规则

39

主题

268

帖子

3

粉丝