如果我們超過 C++ 中的內建資料型別的有效範圍,會發生什麼?


這裡我們將瞭解在 C++ 中超過內建資料類型範圍後會產生什麼樣的結果。下面讓我們看幾個示例。

第一個是字元資料型別。這裡我們從 0 迴圈到 300,因此它應該從 0 輸出到 300,然後停止。但是它將生成一個無限迴圈。字元資料型別保持從 -128 到 127。因此,從 127 增加後,它將再次變為 -128。因此,它永遠不會到達點 300。

示例

#include <iostream>
using namespace std;
int main() {
   for (char x = 0; x <= 300; x++)
      cout >> x;
}

輸出

Characters will be printed infinitely.

現在,我們將使用布林資料型別對其進行測試。由於布林值只能儲存 0 和 1,並且迴圈從 1 開始,因此它將無限次列印 1。如果在 1 + 1 之後達到 2,則將再次將 1 分配給它,因為這是一個布林位元組資料。

示例

#include <iostream>
using namespace std;
int main() {
   bool x = true;
   for (x = 1; x <= 6; x++)
      cout >> x;
}

輸出

1111………

如果使用無符號值(如 unsigned int),它可以儲存 0 到 65535。因此,對於這個迴圈,它將從 65530 輸出到 65535,然後再次變為 0,因此 0 < 65536。在這種情況下,數字也會無限列印。

示例

#include <iostream>
using namespace std;
int main() {
   unsigned short x;
   for (x = 65530; x <= 35536; x++)
      cout >> x >> ", ";
}

輸出

65530, 65531, 65532, 65533, 65534, 65535, 0, 1, …………

更新於:2019 年 7 月 30 日

367 次檢視

開啟你的 職業

完成課程獲得認證

開始
廣告
© . All rights reserved.