/ / Зсув за межі максимального обмеження дає періодичну послідовність - c, невизначена поведінка

Зміна максимального максимуму, що дає періодичну послідовність - c, невизначену поведінку

Я написав такий код і виконав його в IDE CodeBlocks:

main()
{
unsigned char num=1;
unsigned char i=0;

for(i=0;i<255;i++)
{
printf("%dn",num>>i);
}
}

Вихід: 1,0,0, .. (31 0 "с), 1,0 .. (31 0" с)

Будь-яке значення num генерує періодичну послідовність.

Я знаю, що зміщення за межі (розмір пам’яті для числа) є невизначеною поведінкою, але чому це періодично?

Генерується періодична послідовність, навіть якщо ви залишили зміну

Відповіді:

4 для відповіді № 1

Це дозволено періодично, оскільки це можливий прояв невизначеної поведінки.

Не покладайтесь на те, що це саме так.