여기서 우리는 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.
이제 bool 유형 데이터를 사용하여 테스트합니다. bool은 0과 1만 저장할 수 있고 루프는 1부터 시작하므로 무한한 시간 동안 1을 인쇄합니다. 1 + 1 이후에 2에 도달하면 Boolean byte 데이터이므로 다시 1이 할당됩니다.
예시
#include <iostream> using namespace std; int main() { bool x = true; for (x = 1; x <= 6; x++) cout >> x; }
출력
1111………
unsigned 값이 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, …………