В следующем сегменте кода:добавления указатель на целое число в C
if (buffer + strlen(buffer) >= len -1) beep();
примечание: len
является int
, buffer
является указателем на char
.
Я не понимаю, как кто-то добавит буфер (указатель) в строку strlen()
строки и сравните ее с len
. Кто-нибудь может мне помочь, пожалуйста. Примечание: фактическая кодовая ссылка http://www.finseth.com/craft/#intro.1.4 любая помощь будет принята с благодарностью.
строка кода в выражении «если» - это бессмысленность. предположим: '' if (strlen (buffer)> (len-1)) beep(); «Однако, к тому времени, когда это условие будет« истинным », буфер будет проходить через конец« текстового »литерала, что приведет к неопределенному поведению и может/приведет к событию сбоя seg – user3629249
. Обратите внимание, что инструкция« if » в значительной степени зависящей от предсказуемости операторов С. Было бы намного яснее для людей, если бы был включен другой набор или два из парен. – user3629249
@ user3629249 общеизвестно, что арифметические операторы имеют более высокий приоритет, чем реляционные, я сомневаюсь, что кто-то смотрит на это и думает, что это может быть «buffer + (strlen (buffer)> = len) - 1' –