5
หากตัวเลขมีขนาดใหญ่เกินไปมันจะกระจายไปยังตำแหน่งหน่วยความจำถัดไปหรือไม่
ฉันได้รับการตรวจสอบการเขียนโปรแกรม C และมีเพียงสองสามสิ่งที่รบกวนฉัน ลองทำโค้ดนี้กันตัวอย่าง: int myArray[5] = {1, 2, 2147483648, 4, 5}; int* ptr = myArray; int i; for(i=0; i<5; i++, ptr++) printf("\n Element %d holds %d at address %p", i, myArray[i], ptr); ฉันรู้ว่า int สามารถมีค่าสูงสุดเป็นบวก 2,147,483,647 ดังนั้นเมื่อทำอย่างนั้นมันจะ "ล้น" ไปยังที่อยู่หน่วยความจำถัดไปซึ่งทำให้องค์ประกอบ 2 ปรากฏเป็น "-2147483648" ที่ที่อยู่นั้นหรือไม่ แต่นั่นก็ไม่สมเหตุสมผลเพราะในผลลัพธ์มันยังบอกว่าที่อยู่ถัดไปเก็บค่า 4 จากนั้น 5 ถ้าจำนวนที่หกไปยังที่อยู่ถัดไปนั่นจะไม่เปลี่ยนค่าที่เก็บไว้ที่ที่อยู่นั้น ? …