懂CCCCCC的进

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:38:02
我是有名出学者 大家看下面

main()
{
char c;
c='\376';
printf("%c,%d\n",c,c);
}

为什么C的第二个结果是-2 我不懂 请大家讲的详细点

'\376'表示ASCII码为八进制数376的字符,即十进制为3*64+7*8+6=192+56+6=254;
char的大小为1字节,所以c在内存中表示为11111110,
%d表示把数看作有符号数来输出,那么11111110的高位为1,就是负数的补码形式,转成负数就是-2.

回答的强 但是我不懂

一楼回答的很对~~