Призываю кодеров со всего /b/. Помогите первокуру, расскажите стишок что делает данная функция?
что означает int* a? на что указывает? return x%2 означает, что программа работает только если элемент массива четный, или прога просто возвращает четные элементы?
>>237512587 (OP) >что делает данная функция? Возвращает остаток от деления итого элемента массива на два. По факту - устанавливает его чётность/нечётность.
>что означает int* a? Передаёт указатель в качестве параметра. Это значит, что ты можешь имя массива в качестве фактического параметра указать.
>return x%2 означает, что программа работает только если элемент массива четный, или прога просто возвращает четные элементы? Это означает, что функция возвращает 0 или 1.
функция принимает на вход указатель на интовый массив (int * x) и возвращает остаток от деления на 2 для элемента массива под индексом i. Соответственно если возвращает 0 если чётное, и 1 - если не чётное.
>>237512587 (OP) Во-первых, надо называть всё так, чтобы было понятно, а не так, чтобы было короче печатать. > на что указывает В памяти все байты данные лежат линейно. Как ты понимаешь, у каждого байта есть свой порядковый номер. И вот этот указатель - это порядковый номер (адрес) первого байта твоего элемента. X значит что от адреса X надо отсчитать i элементов.
>>237514234 нет, просто лабы давно писал. сдавать пора сейчас. до этого дрочил матан и линал. нужно освежить все, а конспекты лекций я не вел, поэтому все, что я запамятовал теперь спрашиваю у анонов.
>>237512587 (OP) int* a указывает на первый элемент массива (ну иными словами на сам массив), int i это индекс смещение этого массива, сама функция возвращает остаток от деления на 2, если 1 значит число нечетное, если 0 значит четное, поэтому функция и называется "Even"
>>237515262 - унарный префиксный оператор разыменования (взятия значения по адресу). int - базовый тип. Выражение int x означает "если взять значение по адресу x, то получим целое число.
>>237515352 Ебать, разметку попердолило. - унарный префиксный оператор разыменования (взятия значения по адресу). int - базовый тип. Выражение int x означает "если взять значение по адресу x, то получим целое число."
>>237518497 >А если нулл, то на массив из 0 элементов С хуя ли? NULL имеет тип void *. Это указатель на массив элементов типа void. Более того, тип void имеет вполне конкретный размер - 1 байт. Если его разыменовывать, конпелятор выдаст warning, но вполне себе вернет значение.
>>237512587 (OP) оффтоп. почему нельзя просто круглосуточно ебаться и ничего не делать? чтобы тебя помыл муж, пресс тебе накачал муж, попу накачал бы тебе муж, массаж бы тебе сделал муж? Почему это так сложно если все любят секс?
>>237519134 Звездочки - префиксные операторы. Они являются частью выражения, а не базового типа и должны стоять возле того к чему они применяются. Пишут их рядом с типом только мудаки, которые не понимают что делают.
>>237519087 для массового объявления, типа int a, \b, c, \d, \*e
вопрос вкуса, в современных кодинг-стайлах так делать не приеято и звездочку 'прилипают' к типу, так нагляднее. но оллы, которые пишут по stallman или k&r все еще страдают такой хуйней. самому языку похуй, он все проглотит
>>237519254 Простой пример: декларация: "int a()" означает что выражение "a()" имеет тип int (результат выполнения функции - целое число). * - префиксная унарная операция получения значения по адресу. Т.е. справа от звездочки стоит указатель. Дальше сам поймешь?
>>237519315 Ну нет же, анончик! Когда ты передаёшь переменную, ты хочешь указать что ты передаешь не int, a int••• (указатель на указатель на указатель на int). Это же логично!
>>237512587 (OP) Через то, что остаток деления (%) на 2 есть или 1 или нол, эта фигня может использоваться для определения, я вляется ли элемент массива четным или не.
>>237519852 >И тут в тред врывается указатель на функцию, чтоб никаких сомнений не осталось. А если это c++ то можно еще на то накрутить констом и референсов, вообще красота получается.
За такое правда обычно бьют по ебалу ревью, и требуют юзать тайпдефы или юзинг-алиасы.
>>237519958 Это исключительно для демонстрации того как работают декларации в Си, чтоб не было сомнений к какой части синтаксической структуры относится звездочка.
>>237518864 >NULL имеет тип void Не гарантируется. Некоторые компиляторы дефайнят его как 0, некоторые, как ((void)0), соответсвенно и тип у него может быть int как нехуй.
Поэтому Cишники 10 лет плачут и просят nullptr как в C++
>>237521768 А stddef.h у тебя кто поставляет, угашенный ты об дерево. Это часть стандартной либы и поставляется вместе с конпеляторам, и пишется его разработчиками