Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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.

이제 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, …………