Возникают проблемы с пониманием вывода строки кода - - PullRequest
0 голосов
/ 31 мая 2019

Я не понимаю, как использовать выражение return 0* ??

Пробовал искать ответы в Google

return 0*printf("%d",a[i]);

Я не понимаю результата.

Ответы [ 2 ]

1 голос
/ 31 мая 2019

Что касается меня, то это

return 0*printf("%d",a[i]);

просто плохой стиль программирования.

По крайней мере, лучше было бы написать вместо

return ( printf("%d",a[i]), 0 );

не говоря о

printf("%d",a[i]);
return 0;

Может быть, это утверждение найдено в рекурсивной функции.

Что касается вашего вопроса

Проблемы с пониманием вывода строки кода -

затем эта строка выводит значение элемента i-th целочисленного массива a и выходит из соответствующей функции.

0 голосов
/ 31 мая 2019

TL / DR - записывает значение a[i] в стандартный вывод, умножает количество символов, записанных на 0, и возвращает результат ... который всегда равен 0.

Я хотел бы увидеть остальную часть кода для контекста - на основе этой единственной строки кода это не имеет смысла, но, возможно, в контексте это будет выглядеть немного менее бессмысленно.

printf возвращает количество символов (байтов), записанных в выходной поток, поэтому это записывает значение a[i] в стандартный вывод, умножает количество символов, записанных на 0, и возвращаетрезультат ... , который всегда равен 0, поэтому, опять же, эта отдельная строка не имеет смысла.

Мне трудно придумать случай использования, где это было бы логично, но это не значит, что его нет.Возможно, автор хочет убедиться, что значение a[i] отображается даже в случае ошибки, но почему бы просто не сделать

if ( error_occurred )
{
  printf( "%d", a[i] );
  return 0;
}

в этом случае?

Возможно, автор намеревается выполнить оператор print одновременно с возвратом, и в этом случае они не понимают, как работает Си.Возможно, автор путает краткий код с быстрым кодом, и в этом случае они все еще не понимают, как работает Си.

Или, может быть, автор хитрый ради хитрости.

...