请问为什么使用&去数组地址时输出的是完全不相关的数据
于30个字符,请进行修于30个字符,请进行修于3修
a 本来就是 字符指针, &a是指 取字符指针变量a 本身的地址 ,它跟 数组元素没有关系, &a + 1 表示 字符指针变量a 的地址 + 1, 然后 *(&a + 1) 取对应的值,这个值是未知的
a 指向的值是 *a, 所以你要取 a 往后移动一位的值 ,你直接 * (a + 1) 即可,相当于 a[1]
您所谓的“数组地址”应该是数组索引吧?&字符在C中是“指针赋值(取地址)”,取的是对象在内存中的地地址,肯定和您预期的是“无关”的数字(内存地址用一串数字表示)。
csdn 博文截屏
我仅会点儿python ,用python 代码来展示下数组地址
一次载入,内存地址是不变的。
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端
称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出 LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈 / 压栈 / 入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈。出数据也在栈顶。
知道了栈进出数据的原则,那现在我们来做两道选择题。可以先看一下题目,做完再来看答案和解析。
1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出
栈的顺序是( )。
A 12345ABCDE
B EDCBA54321
C ABCDE12345
D 54321EDCBA2.若进栈序列为 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 依次出栈。