吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1884|回复: 15
收起左侧

[讨论] 萌新求教,关于数组和指针关系

[复制链接]
linvvavn 发表于 2019-7-16 23:58
一直弄不大清楚数组和指针的关系,最开始我以为数组名就是个指针,这问题困惑了很久,也许是之前不怎么用心,一直没想出差别来。百度搜出的内容还又臭又长的。
刚刚就想自己写代码测试,测试了以后感觉豁然开朗。瞬间明白了指数和数组的区别。请教下我的想法对不对。

比如我定义一个数组 char a[10]。意思就是我在内存里划出一块10个字节的内存,这块内存被我命名为 a, a 的地址和 a 的值一样。
定义一个 char* p=a,意为划出4个字节的内存,这块内存里储存了 a 的地址,即分配指针类型的内存存储地址,使 p 指向了 a 的开头,可用 *p 访问 a 的值

我原来最大的困惑是以 p[i] 这样的方式访问 a 的元素,跟 a[i] 等同,加上有数组名是个指针的说法,我就以为 a 同 p 是一模一样的。
现在明白了,这里的差别在于,a相当于指针, a[i]就相当于向后移动了 i 个字节。但是 p[i] 实质上应当是   *(p+i) 这样对么?只是C语言允许我们直接简化写成  p[i] ,这么理解应该没错的吧?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

骑龟赛跑 发表于 2019-7-17 00:11
超市储物柜知道吧?   数组就是那一堆储物柜.
指针就是员工指向储物柜.

boy7928 发表于 2019-7-17 00:15
骑龟赛跑 发表于 2019-7-17 00:11
超市储物柜知道吧?   数组就是那一堆储物柜.
指针就是员工指向储物柜.

比喻+2 很形象
 楼主| linvvavn 发表于 2019-7-17 00:29
骑龟赛跑 发表于 2019-7-17 00:11
超市储物柜知道吧?   数组就是那一堆储物柜.
指针就是员工指向储物柜.

真的是特别的形象啊。
想问指针 p[ i ] 这样访问数组元素,是不是就是  *(p+i)  的简写?
hjt1999 发表于 2019-7-17 02:33
数组名就是指向数组首个元素地址的指针吧 指针的++就是前移后移,不影响数组本身的值 理解一下取地址符&的意思就好了
Shark丶XiaoHuai 发表于 2019-7-17 04:35
骑龟赛跑 发表于 2019-7-17 00:11
超市储物柜知道吧?   数组就是那一堆储物柜.
指针就是员工指向储物柜.

大佬请问群组又是什么意思呢?最近突然遇见了百思不得其解
无闻无问 发表于 2019-7-17 08:29
两个方法,一个是下标法,一个是指针法,变量也好,数组也罢,皆是地址…
无闻无问 发表于 2019-7-17 08:32
a和p不一样在于一个地址常量,一个变量…

免费评分

参与人数 1热心值 +1 收起 理由
cube + 1 我很赞同!

查看全部评分

weliong 发表于 2019-7-17 08:38
骑龟赛跑 发表于 2019-7-17 00:11
超市储物柜知道吧?   数组就是那一堆储物柜.
指针就是员工指向储物柜.

数组=储物柜
指针=储物单
用p或*(p+i) 只是储物单上 编号的不同表达方式而已。
_默默_ 发表于 2019-7-17 08:53
楼主理解没有错    over
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-20 10:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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