0
#include <stdio.h>
int main()
{
char c = 255;
if (c > 128)
{
printf("This is unsigned number %d\n", c);
}
else
{
printf("This is signed number %d\n", c);
}
}
在這種情況下,當我們初始化具有範圍從-127到128的帶符號字符時會發生什麼?它沒有環繞,因爲它是未定義的行爲,但真正發生了什麼?C中的類型轉換混淆
我得到-1的結果,但如何和爲什麼?
你在問未定義行爲會發生什麼?真的嗎? –
這不是未定義的行爲,而是定義了實現。所以這取決於你的編譯器。 –
@JensGustedt將char傳遞給%d,好嗎? –