请问为什么使用&去数组地址时输出的是完全不相关的数据

请问为什么使用&去数组地址时输出的是完全不相关的数据

于30个字符,请进行修于30个字符,请进行修于3修

img

a 本来就是 字符指针, &a是指 取字符指针变量a 本身的地址 ,它跟 数组元素没有关系, &a + 1 表示 字符指针变量a 的地址 + 1, 然后 *(&a + 1) 取对应的值,这个值是未知的
a 指向的值是 *a, 所以你要取 a 往后移动一位的值 ,你直接 * (a + 1) 即可,相当于 a[1]

  您所谓的“数组地址”应该是数组索引吧?&字符在C中是“指针赋值(取地址)”,取的是对象在内存中的地地址,肯定和您预期的是“无关”的数字(内存地址用一串数字表示)。

  • csdn 博文截屏

    img

  • 我仅会点儿python ,用python 代码来展示下数组地址

    img


    python 中数组和数组元素都是不同的变量,都有不同的内存地址。
  • 一次载入,内存地址是不变的。

    img


  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7790982
  • 你也可以参考下这篇文章:【了解链表的适用场景;掌握单向链表、双向链表的使用】(学习笔记18--链表)
  • 除此之外, 这篇博客: 【数据结构与算法】栈的实现&&有效的括号中的 👉栈的概念及结构👈 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端
    称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出 LIFO(Last In First Out)的原则。

    压栈:栈的插入操作叫做进栈 / 压栈 / 入栈,入数据在栈顶。

    出栈:栈的删除操作叫做出栈。出数据也在栈顶。

    在这里插入图片描述
    在这里插入图片描述

    知道了栈进出数据的原则,那现在我们来做两道选择题。可以先看一下题目,做完再来看答案和解析。

    1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出
    栈的顺序是( )。
    A 12345ABCDE
    B EDCBA54321
    C ABCDE12345
    D 54321EDCBA

    2.若进栈序列为 1,2,3,4 ,进栈过程中可以出栈,则下列不可能的一个出栈序列是()
    A 1,4,3,2
    B 2,3,4,1
    C 3,1,4,2
    D 3,4,2,1

    答案和解析:
    1.答案:B;解析:因为栈结构符合后进先出的原则,且1、2、3、4、5、A、B、C、D、E依次入栈,所以出栈顺序为E、D、C、B、A、5、4、3、2、1。

    2.答案:C;解析:A 选项元素 1 入栈后出栈,元素 2、3、4 依次入栈后依次出栈;B 选项元素 1 入栈,元素 2 入栈后出栈,元素 3 入栈后出栈,元素 4 入栈后出栈,最后元素 1 出栈;D 选项元素 1、2、3 依次入栈,元素 3 出栈,元素 4 入栈后出栈,最后元素 2 、1 依次出栈。

  • 您还可以看一下 吴刚老师的【吴刚】简历包装与面试技巧视频教程课程中的 30-图形、图像及文字在画面中的比例关系配置小节, 巩固相关知识点