У меня просто отличная головоломка для программирования. Почему же?Сравнение двух переменных
#include <stdio.h>
#include <limits.h>
int main(int argc, char *argv[])
{
unsigned int x = ULONG_MAX;
char y = -1;
if (x == y) printf("That is same.");
return 0;
}
Я думаю, что unsigned int преобразуется в подписанный символ и, следовательно, будет -1. Это может быть стандарт для сравнения подписанного и неподписанного типа. Я не знаю ...
Это домашнее задание? Пожалуйста, используйте тег [tag: Homeework], если это так. –
Нет, это не так. ;-) – RePRO
это DUP из http://stackoverflow.com/questions/6636793/what-are-the-general-rules-for-comparing-different-data-types-in-c –