3711|14

411

帖子

9

TA的资源

一粒金砂(高级)

为什么定义的指针使用时可以当作数组用? [复制链接]

 

/*清屏函数--将整个屏幕清成同一种颜色*/
void lcd_clear(unsigned int color)
{
    unsigned int num;
    unsigned int i = 0;
    unsigned int *startaddr = (unsigned int*)tftlcd_dev.framebuffer;
    num = (unsigned int)tftlcd_dev.width * tftlcd_dev.heigh;
    for(i = 0; i < num; i++)
    {
        startaddr[i] = color;
    }

}

 

这是学Linux开发板时遇到的程序,

不明白的是程序定义的unsigned int *startaddr是指针,为什么后面使用时直接当数组使用? startaddr[ i ] 这个明明是数组的使用方式,指针跟数组怎么串着用,这是什么语法?

 

最新回复

因为数组存储的数据在内存中是连续的,用指针指数组就是指到数组的第一个元素的地址,所以把指针+1+1就能对数组读取或写入   详情 回复 发表于 2024-3-7 09:40

回复
举报

411

帖子

9

TA的资源

一粒金砂(高级)

我好像自己找到答案了,这个链接里面有说   https://blog.csdn.net/qq_25814297/article/details/87445481?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-87445481-blog-102632978.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-87445481-blog-102632978.pc_relevant_default&utm_relevant_index=2

点评

数组 或内存间数据交换经常借助指针。  详情 回复 发表于 2022-7-18 09:40

回复

143

帖子

1

TA的资源

一粒金砂(高级)

数组就是内存中一段连续的存储单元,指针指向这个内存数据块的头部来存取数据,和用数组操作没有区别。用指针要小心越界。


回复

7053

帖子

2

TA的资源

五彩晶圆(中级)

一定意义上等价

个人签名

默认摸鱼,再摸鱼。2022、9、28


回复

114

帖子

6

TA的资源

一粒金砂(中级)

這個我有發現,還滿特別的,常常交替使用.


回复

1

帖子

1

TA的资源

一粒金砂(初级)

数组名就是地址


回复

5758

帖子

4

TA的资源

版主

本帖最后由 damiaa 于 2022-7-18 09:43 编辑
shijizai 发表于 2022-5-19 10:41 我好像自己找到答案了,这个链接里面有说   https://blog.csdn.net/qq_25814297/article/details ...

数组 或内存间数据交换经常借助指针。c语言指针是个很灵活的东西。指哪打哪。 你要是指错了地方。它也打。只是 那就惹麻烦了。


回复

2

帖子

0

TA的资源

一粒金砂(初级)

数组名和指针本质都是内存地址,等价的。


回复

224

帖子

0

TA的资源

一粒金砂(高级)

看一下反汇编代码,就知道它背地里在搞什么东西了


回复

194

帖子

0

TA的资源

一粒金砂(高级)

数组名就是数据在内存的首地址,数组数据在内存中是一段连续的存储单元,指针指针可以指向数组的首地址的


回复

582

帖子

0

TA的资源

纯净的硅(中级)

C编译器内部数组名称,是做为指针处理的,也就是首地址。


回复

194

帖子

0

TA的资源

一粒金砂(高级)

数组名与指针有联系也有区别的,数组名是常量类型,而指针是变量类型,不能将指针赋值给数组名


回复

330

帖子

0

TA的资源

版主

打印下指针地址就知道了,还有个简单方法可以验证,*(ptr+x*sizeof(类型))看看是不是等于 ptr[x]


回复

194

帖子

0

TA的资源

一粒金砂(高级)

这方面的知识值得深入探讨学习,希望能提供这方面的资料以供学习


回复

1

帖子

0

TA的资源

一粒金砂(初级)

因为数组存储的数据在内存中是连续的,用指针指数组就是指到数组的第一个元素的地址,所以把指针+1+1就能对数组读取或写入


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

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
AD9852资料(程序,原理图)

本帖最后由 paulhyde 于 2014-9-15 02:54 编辑 包括测试程序,原理图,是买的一块开发板上给的。 本帖最后由 chbaaic 于 2008 ...

上海贝尔 PCB 设 计 规 范.pdf

上海贝尔 PCB 设 计 规 范.pdf

一款P4电脑主板电源管理原理图

哥们根据实物反画的一款P4电脑主板电源管理原理图,PROTEL99SE格式.为了给朋友修电脑,没办法啊.花了一天的时间画的,电脑修好了.图 ...

【FPGA开源教程连载】第十一章 串口发送模块设计与验证

串口发送模块设计与验证 https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid=t0188lae ...

开关电源兴趣小组 开关电源电感中的电流波形为什么是折线?

本帖最后由 maychang 于 2020-8-23 16:33 编辑   开关电源电感中的电流波形往往是折线,例如我们刚刚讨论过的Buck电路,无 ...

【Perf-V评测】+按键控制RGB_LED色彩变换

在澎峰FPGA开发板上,载有按键、LED和RGB_LED等可供验证之用的资源。将按键KEY同RGB_LED组合起来即可构成一个用按键来控制RGB_LE ...

灵动微MM32SPIN25PF可兼容替换MM32F031CBT6

本帖最后由 TEL18688947970 于 2021-7-26 11:13 编辑 灵动微电子是中国本土领先的通用32位MCU产品及解决方室供应商。灵动微电 ...

2021电赛D题基于互联网的摄像测量系统(D题)——双目视频测量系统

本帖最后由 bqgup 于 2021-11-5 19:39 编辑 一、电赛D题 571548 571549571550 二、双目视频系统物体运动轨迹 5 ...

[EETalk]钠电新势力,新老玩家纷纷入局竞争激烈,对此,你怎么看?

管管今儿看到一篇新闻,给大家摘摘里面部分内容: 钠电元年将至,各路玩家关键技术发力,催化产业提速。 660796 &l ...

【玄铁杯第三届RISC-V应用创新大赛】Licheepi 4A 单板机简单开箱

本帖最后由 anthpo 于 2023-10-8 19:29 编辑 前几天,收到了LicheePi 4A,一直没有空闲时间调试,最近有时间了,来个开箱 ...

关闭
站长推荐上一条 1/10 下一条

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

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

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

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