我有以下代码:
void main()
{
char tmp[3]= "AB";
short k;
memcpy(&k,tmp,2);
printf("%x\n", k);
}
在 ASCII 中,字符“A”的十六进制值为 41,字符“B”的十六进制值为 42。为什么这个程序的结果是 4241?我认为正确的结果是4142。
最佳答案
您显然是在“小端”机器上运行它,其中最低有效字节排在第一位。请参阅http://en.wikipedia.org/wiki/Endianness .
关于c - 请帮助我在 C 中使用 memcpy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8220362/