有关数组指针的问题
本帖最后由 Jacksturdy 于 2020-10-3 16:25 编辑在这段代码中&array + 1为什么小甲鱼说&array + 1 指向的就是整个数组最后的位置(第二个 array 数组的起始位置)
按理说不应该是&array获取地址后将地址的数据加1吗,怎么就直接说是指向整个数组的最后的位置了呢?
#include <stdio.h>
int main()
{
int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *p = (int *)(&array + 1);
printf("%d\n", *(p - 6));
return 0;
} 因为数组元素的类型是 int,所以这里 +1 其实是加了 sizeof(int)*1 zltzlt 发表于 2020-10-3 16:25
因为数组元素的类型是 int,所以这里 +1 其实是加了 sizeof(int)*1
那我要是想把它的地址加一该怎么加呢? Jacksturdy 发表于 2020-10-3 16:27
那我要是想把它的地址加一该怎么加呢?
地址加一就不是访问到一个 int 整数了 zltzlt 发表于 2020-10-3 16:28
地址加一就不是访问到一个 int 整数了
也就是说我们不能直接操作地址数据吗
页:
[1]