为什么使用指向第一个元素的指针打印数组会得到反向数组?

时间:2019-10-29 12:40:56

标签: c arrays pointers memory

正如我们在两个print语句中所见,打印*(x+1)*(y+1)给出了数组的第二个元素,但是使用col指针访问整个4字节内存将打印元素相反,为什么会发生呢?

#include<stdio.h>
int main() {
    char x[4]={'a',0,0,0};
    unsigned int *col = (void *) x;
    printf("%d  %0.8x", *(x+1), *col); // 0  00000061

    char y[4]={'a','b','c','d'};
    col = (void *) y;
    printf("%d  %0.8x", *(y+1), *col); // 98  64636261
}

0 个答案:

没有答案