6 c
为什么在下一个代码c = 1?
#include <stdio.h>
int main()
{
int i = 65537;
char c = (char)i;
printf("c = %d\n",c); /* why c =1 */
return(0);
}
Run Code Online (Sandbox Code Playgroud)
65537是0x10001(十六进制,二进制10000000000000001).如果将此值转换char为仅一个字节长,则只会从0x1001获取最低(最低有效)字节,即十进制中的0x01 = 1.