理解C/C 中的Long Long
在C 和C 中,「long long」資料型別表示64 位元有符號整數的精度。這使得它能夠表示“int”或“long”等標準整數類型無法容納的極大或極小的數字。
在提供的程式碼片段中,提出了有關「long」行為的幾個問題long' 變數:
「長」的大小long':
「sizeof」運算子傳回變數或資料型別的大小(以位元組為單位)。由於“num3”未使用任何值進行初始化,因此它保持未初始化狀態,且其大小未定義,從而導致 0。若要解決此問題,請使用“long long”值明確初始化“num3”。
整數溢位:
C 以靜默方式處理整數溢位。當分配給變數的值超過其容量時,它會回繞並繼續從最小值開始計數。在這種情況下,將 10000000000 指派給「long」變數會導致溢出,結果為負值。然而,由於 'num2' 是一個 'long long',它可以容納大值而不會溢出。
文字整數常數:
在 C 和 C 中,整數常數是強型態的。分配超出目標資料類型限制的文字整數常數會導致編譯錯誤。在這個例子中,常數 100000000000 超出了 'long' 的範圍,添加 'LL' 明確指定它應該被視為 'long long' 常數。
以上是為什麼 C/C 中 'long long' 的行為與 'int' 或 'long' 不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!