码迷,mamicode.com
首页 > 编程语言 > 详细

指针与数组

时间:2020-02-19 05:35:24      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:区别   span   指针类型   inf   技术   也有   并且   n个元素   使用   

比较模糊的说法是:数组名就是指针

 

但两者还是有区别的

从输出结果看两者根本就是两个事物,只能说数组名神似指针,数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;那么数组名到底是什么:

  符号表是编译原理中的一个概念,应用于编译器的词法分析和语义分析两个阶段。词法分析的目标是让编译器能知道这是个数组就好了,那么语义分析阶段就需要确定这个数组的具体空间了。所以我们定义了一个数组,编译器就会在符号表中加入数组的名字a,并且根据其指定的大小,开辟一段内存空间,把这段内存空间的首地址(也就是第一个元素的地址)存入符号表,这也就是为什么我们通过数组名就可以去访问数组的元素了。编译器这么做是为了使我们使用数组更加的方便,易懂。也有人说a是一个内存地址,也没有什么不妥的,因为编译器允许我们直接把a作为数组首地址来用。数组是一种线性的数据结构,数组名指向了那一片内存。

 

 

根据C语言的规定,数组名=数组首元素指针,所以直接可以用数组名的解引用buf来访问第一个元素,也可以使用(buf+N)来访问第N个元素。

但是:https://blog.csdn.net/qq_21834027/article/details/84451976

指针的加减运算的粒度是基于指针类型的长度,数组指针的长度为sizeof(数组),而数组元素指针是sizeof(单个元素)(再啰嗦一次!数组名为数组元素指针而不是数组指针)。

指针数组:是一个数组,数组元素为指针
数组指针:是一个指针,指向数组的指针

技术图片

 

 

指针与数组

标签:区别   span   指针类型   inf   技术   也有   并且   n个元素   使用   

原文地址:https://www.cnblogs.com/focusonoutput/p/12329566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!