zoukankan      html  css  js  c++  java
  • C++--------------------------------指针和数组替换使用原因

    马上要考试了,复习数据结构中,对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)操作的。因此,

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

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

  • 相关阅读:
    解析包含空格的字符串
    机器学习实战之Logistic回归
    复杂的数据类型
    k-近邻算法
    C&C++
    位运算
    文件操作
    结构体与共用体
    预处理-04-#if defined和#if !defined
    预处理-03-文件包含、条件编译、小结
  • 原文地址:https://www.cnblogs.com/JeasonIsCoding/p/10048702.html
Copyright © 2011-2022 走看看