Я прочитал это. Это восьмеричное число в C++ и десятичное число в Java. Но нет описания о C?
Будет ли иметь какое-либо значение, является ли 0 восьмеричным или десятичным? Это вопрос, заданный моим интервьюером. Я сказал «нет» и объяснил, что это всегда 0, независимо от того, восьмеричное оно или десятичное.
Затем он спросил, почему в C++ оно считается восьмеричным, а в Java — десятичным. Я сказал, что это стандарт. Пожалуйста, дайте мне знать, что это в C? Будет ли это иметь значение? Почему они разные в разных стандартах?
0
восьмеричным или десятичным, не наблюдается. Так что я бы сказал, что это не указано. (Независимо от того, что говорит грамматика, если ваш компилятор обрабатывает0
как десятичное число, это все равно может быть соответствующей реализацией.) - person mafso   schedule 29.10.2014int class = 5;
. Я считаю, что Objective-C есть. - person David Young   schedule 30.10.20140
, может быть либо восьмеричным, либо шестнадцатеричным. Если естьx
сразу после первого0
, то это шестнадцатеричный. Если за первым0
следуют только другие цифры, то это восьмеричное число. Если числовой литерал начинается с любой другой цифры, он является десятичным. Это справедливо как для C, так и для C++. - person Hot Licks   schedule 30.10.2014NULL
математики. Это нарушает многие основные правила, приводит к неожиданным или неоднозначным случаям и пограничным случаям. Забавный материал! Отличный вопрос! - person Brandon   schedule 31.10.20140 + 4 + 4
даст вам 8 в десятичном виде и 10 в восьмеричном. И может быть целый ряд странных ситуаций, которые приводят к вычислению, приближающемуся к примеру - вы можете вызвать++
для переменной 8 раз в цикле, и если начало равно 0 в восьмеричной системе, вы получите 10. А вы не можете даже заметьте проблему - рассмотрите возможность зацикливания и выборкиarr[myVar++]
, а ваше завершение, скажем,10
- поскольку вы не выходите за пределы, вы получите из него только 8 элементов и пропустите индекс 8 и 9. - person VLAZ   schedule 31.10.2014