Я писал код C для задания в школе и наткнулся на ошибку, которая на самом деле сильно меня озадачила. Ниже приведен фрагмент кода, вызывающий проблемы.В чем разница между <и << в C?
int i, result = 1;
for(i = 0; i < n; i++)
{
if(a[i]<< 15 || a[i] >> 50)
result = 0;
}
Каждый раз, когда я пытался запустить мою программу, я хотел бы видеть предупреждение, что 50 был слишком большим для моего типа данных. Зная, что я использую тип int и что число 50 можно легко сохранить в int, я предположил, что он ожидает значение меньше 32, поскольку int является 32-байтовым типом. Я попытался использовать число 20 вместо 50 и не получил ошибок. Затем я заменил двойные знаки «<» и «>» синглами, и код работал отлично. Мне было интересно, может ли кто-нибудь пролить свет на то, почему это так? Я новичок в C и просто сделал снимок в темноте, что дополнительные символы «<» и «>» были проблемой, но я хотел бы знать, почему это сработало!
Реальный вопрос, почему вы попытаетесь сравнить с >> или << в первую очередь. Но вы можете искать операторов на C в любой книге или учебнике и посмотреть, что они делают за секунду. –