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

C++--------------------------------指针和数组替换使用原因

时间:2018-12-01 12:56:38      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:bsp   span   方便   地址   nbsp   sts   ++   def   表达   

马上要考试了,复习数据结构中,对C的指针不太了解,在严蔚敏《数据结构(C语言版)》中,发现p22定义顺序存储结构:

typedef srtuct{
    ElemType  *elem; //存储空间基址
    int  length;     //当前长度
    int  listsize;   //当前分配的存储容量
}SqList;

顿时蒙蔽,为何定义的指针在后面能   L.elem[i]   这样的调用.....这不是数组的访问形式么?

于是谷歌:

    数组a[i]在编译的时候会被编译器复原成*(a+i),其中a是数组名,也是数组的首地址,也就是说a[i]和*(a+i)

  是完全等价的,甚至可以认为C语言没有数组,a[i]只是方便表达,实际上程序是按照*(a+i)操作的。因此,

  数组在一段连续的内存中存储的,这也是可以用数组来描述数据结构中的顺序存储结构的原因。

 

综上,对数组和指针有了更本质的理解。

C++--------------------------------指针和数组替换使用原因

标签:bsp   span   方便   地址   nbsp   sts   ++   def   表达   

原文地址:https://www.cnblogs.com/JeasonIsCoding/p/10048702.html

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