zoukankan      html  css  js  c++  java
  • 数组名a、数组名取地址&a、数组首地址&a[0]、数组指针*p

    本文链接:https://blog.csdn.net/loongkingwhat/article/details/78910921

    数组和指针向来就是傻傻分不清,当他们一起出现的时候就更加懵逼。
    1 解析不同变量之间的区别:
    数组名a:
    数组名可以作为数组第一个元素的指针。我们由数组和指针的关系知道,a代表这个地址数值,它相当于一个指针,指向第一个元素(&a[0]),即指向数组的首地址。数组中的其他元素可以通过a的位移得到,此时的进阶是以数组中单个的元素类型为单位的,即a+i= & a[i]。
     
    数组名取地址&a:
    对于一个普通的变量b,&b是指用取地址符号取得变量b的存放地址;a在内存中没有分配空间,只对数组a的各个元素分配了存储空间,此处数组名字a显然不是普通的变量,&a也不代表所取a的存储地址。
    &a在数值上等于&a[0],也等于a。此时,&a数值上等于整个数组的起始位置地址,含义上代表整个数组所占内存的大小,因为它的进阶单位是整个数组的字节长度,(&a + 1)等于的是数组结束之后的下一段的起始位置地址。
     
    数组首地址&a[0]:
    这个就是取地址的最直接的应用,a[0]在内存中实际分类存储空间,而&a[0]就是取该存储空间的地址,这与对于任意满足范围的i,&a[i]就是取第i个元素的存储地址一样。
     
    数组指针*p:
    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。经常用取地址符&将某个变量的地址赋给它,同时常常对指针用取值符号*取得对应地址的内容。
    暂时还没做指针相关的总结,贴一篇不错的博客。让你不再害怕指针——C指针详解(经典,非常详细)大佬的这篇博客,内容和它的标题一样经典和详细,非常值得参考。
     
  • 相关阅读:
    指针数组与数组指针
    209. 长度最小的子数组
    面试题 05.08. 绘制直线(位运算)
    1160. 拼写单词
    88. 合并两个有序数组
    80. 删除排序数组中的重复项 II(On)
    python自定义异常和主动抛出异常
    类的构造方法1(类中的特殊方法)
    python之判断一个值是不是可以被调用
    主动调用其他类的成员(普通调用和super方法调用)
  • 原文地址:https://www.cnblogs.com/pquan/p/11664033.html
Copyright © 2011-2022 走看看