Хорошо, первая вещь, которую вы должны знать, есть, символ хранится в памяти как Ascii Table. Поэтому в памяти char c
будет иметь целое значение «8». Из таблицы мы знаем, что целое значение '8' является 56. В соответствии с таблицей, мы получим:
'8': 56
'0': 48
'9' : 57
Итак, давайте начнем.
c++
: Это инструкция, которая добавляет c на единицу и возвращает значение текущего c.
Пример:
int a,c;
c=1;
a=c++;
printf("a=%d,c=%d",a,c);
Результатом этого кода является "= 1, с = 2"
так %d
С ++ по-прежнему 56.
d+=c>'0'&&c<='9'
: В соответствии с приоритетом языка C это заявление будет выглядеть так:
d+=(c>'0'&&c<='9')
Итак, давайте начнем с c>'0'&&c<='9'
. Это условие. Значение cc Ascii отличное или равное значению Ascii от 0 и меньше или равно 9 Ascii-значению (уведомление c's Ascii теперь составляет 56 или 57, потому что порядок оценки printf
не определен. Таким образом, это будет 56, если этот оператор оценивается до c++
или 57, если после c++
. Но в обоих направлениях, c<='9'
верно) ДА. Таким образом, утверждение верно. В C ИСТИНА составляет 1.
Таким образом, d+=c>'0'&&c<='9'
будет d+=1
, что означает d = d + 1. Так %d
дублетов равно 9.
Таким образом, результат «9-56»
Это странно! –
char '8' -' 56' в десятичной системе. Другая часть хорошо справляется с упомянутым выше вопросом. – devnull
Соревнуетесь ли вы в конкурсе по запуску кода или пытаетесь понять порядок работы? – vextorspace