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.

ตอนนี้เราจะทดสอบโดยใช้ข้อมูลประเภทบูล เนื่องจากบูลสามารถเก็บได้เพียง 0 และ 1 และการวนซ้ำเริ่มต้นจาก 1 ดังนั้นมันจะพิมพ์ 1 จำนวนเวลาที่ไม่สิ้นสุด หากถึง 2 หลังจาก 1 + 1 จะมีการกำหนด 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 ดังนั้นสำหรับ loop นี้ มันจะพิมพ์จาก 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, …………