百科狗-知识改变命运!
--

指针与数组的区别和联系是什么?

是丫丫呀1年前 (2023-12-03)阅读数 7#综合百科
文章标签数组指针

指针与数组的区别和联系是什么?

指针与数组之间的恩恩怨怨\x0d\很多初学者弄不清指针和数组到底有什么样的关系。我现在就告诉你:他们之间没有\x0d\任何关系!只是他们经常穿着相似的衣服来逗你玩罢了。\x0d\指针就是指针,指针变量在32位系统下,永远占4个byte,其值为某一个内存的地址。\x0d\指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到。\x0d\数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型\x0d\和个数。数组可以存任何类型的数据,但不能存函数。\x0d\既然它们之间没有任何关系,那为何很多人把数组和指针混淆呢?甚至很多人认为指\x0d\针和数组是一样的。这就与市面上的C语言的书有关,几乎没有一本书把这个问题讲透彻,\x0d\讲明白了。\x0d\指针和数组的对比\x0d\指针\x0d\保存数据的地址,任何存入指针变量p的数据都会被当作地址来处理。p本身的地址由编译器另外存储,存储在哪里,我们并不知间接访问数据,首先取得指针变量p的内容,把它作为地址,然后从这个地址提取数据或向这个地址写入数据。指针可以以指针的形式访问*(p+i);也可以以下标的形式访问p[i]。但其本质都是先取p的内容然后加上i*sizeof(类型)个byte作为数据的真正地址。通常用于动态数据结构通相关的函数为malloc和free。通常指向匿名数据(当然也可指向具名数据)\x0d\数组\x0d\保存数据,数组名a代表的是数组首元素的首地址而不是数组的首地址。&a才是整个数组的首地址。a本身的地址由编译器另外存储,存储在哪里,我们并不知道。直接访问数据,数组名a是整个数组的名字,数组内每个元素并没有名字。只能通过“具名+匿名”的方式来访问其某个元素,不能把数组当一个整体来进行读写操作。数组可以以指针的形式访问*(a+i);也可以以下标的形\x0d\式访问a[i]。但其本质都是a所代表的数组首元素的首地址加上i*sizeof(类型)个byte作为数据的真正地址。通常用于存储固定数目且数据类型相同的元素。隐式分配和删除自身即为数组名

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)