整數文字的型別預設不是 int
在程式設計中,整數文字的型別通常被假定為 int。然而,在某些情況下情況可能並非如此。
考慮以下C 程式碼:
for (i = 0; i < 10000000000; i++)
儘管文字10000000000 沒有附加「L」後綴(這明確地表明表示長整型),編譯器認為該值超出了32 位元的範圍整數。
根據 C99 和 C 11 標準,整數常數的類型由表 6 中可以表示其值的第一個條目決定。對於不帶後綴的十進制常量,表6 按降序指定了以下類型:
因此,在給定的程式碼範例中,編譯器將文字解釋為long int (或long long int如果 long int 是 32 位元)來容納它的大值。
需要注意的是,「太大」的文字通常會導致編譯錯誤。這是因為該值不能用任何允許的類型表示。
以上是什麼時候整數文字不是'int”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!