字符数组在小端系统存储:低地址向高地址顺次存储str[0] => str[n]。
举例:
char *a = "uni";printf("%c %c %c\n", a[0], a[1], a[2]);
printf("%d %d %d\n", a[0], a[1], a[2]);
int *str = (int *)a;
printf("%d %d %d %d\n", ((*str)>>0) & 0xff, ((*str)>>8) & 0xff, ((*str)>>16) & 0xff, ((*str)>>24) & 0xff);
printf("str = %d\n", *str);
打印:
u n i
117 110 105
117 110 105 0
str = 6909557
6909557 = 117 + 110 <<8 + 105 <<16。