当我们超出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这样使用unsigned值,则可以存储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, …………