一个地址单元对应着一个字节
c 语言中, 一个字符就是一个字节, 所以字符串不用考虑大小端的问题
对于 int 这种四个字节的, 就有问题了
#include<stdio.h>
int main() {
long int longInt = 0x12345678;
unsigned char* p = (unsigned char*)&longInt;
printf("\n longInt(%%d) = %d \n longInt(%%x) = %x \n print from address = ",longInt,longInt);
for (int i = 0;i < 8;i++) {
printf("%x ", *(p + i));
}
int array[10];
printf("\n array0 address = %u \n array1 address = %u \n", array, array + 1);
return 0;
}
输出结果
也就是说本来我们以为在 &longInt 这个地址上向后看, 应该是
0 0 0 0 12 34 56 78
结果真正的地址上
78 56 34 12 0 0 0 0