У меня есть этот небольшой фрагмент кода, и мне трудно понять, что может быть результатом?
int main()
{
unsigned int i=65000;
while ( i++ != 0 );
printf("%d",i);
return 0;
}
Я чувствую, что постинкремент играет важную роль в цикле, но я не могу это представить. По-разному ли ведут себя беззнаковые целые числа в циклах while после достижения максимального положительного значения? Наконец, какова цель точки с запятой после цикла while?
i
достигнет своего максимального значения (оборачивается на 0), хотя весьма вероятно (конечно, при включенной оптимизации компилятора) цикл будет отброшен, аi
будет напрямую установлено в 1 (вам нужно будет проверить вывод ассемблера для этого). - person   schedule 29.04.2017printf()
) без прототипа в области видимости, вызывает неопределенное поведение (может случиться что угодно: программа может зависнуть, программа может напечатать 42, компилятор может остановиться, не создав исполняемый файл, ...). Вам нужно#include <stdio.h>
для соответствующей программы. - person pmg   schedule 29.04.2017