#include <stdio.h>
int main()
{
unsigned char i;
i=5;
printf("%d\n",~i);
return 0;
}
————————————————
#include <stdio.h>
int main()
{
unsigned char i;
i=5;
i=~i;
printf("%d\n",i);
return 0;
}
上下兩個輸出的結果為什么會不一樣?
uj5u.com熱心網友回復:
這中間都摻雜著型別轉換,比如i = ~i;首先~i取反會型別提升到int,所以~i的結果是-251(最高位為符號位int型別);i = ~i;把-251賦值給i會有型別int轉成unsigned char(最終轉成unsigned char)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/273369.html
標籤:C語言
上一篇:求問錯誤
下一篇:有沒有大佬幫忙分析一下?
