一个字符是 1 个字节,一个整数是 4 个字节。我想将 char[4] 中的一个字节一个字节地复制到一个整数中。我想到了不同的方法,但我得到了不同的答案。
char str[4]="abc";
unsigned int a = *(unsigned int*)str;
unsigned int b = str[0]<<24 | str[1]<<16 | str[2]<<8 | str[3];
unsigned int c;
memcpy(&c, str, 4);
printf("%u %u %u\n", a, b, c);
输出为 6513249 1633837824 6513249
哪一个是正确的?出了什么问题?