Re[3]: Как пройти собеседование в Яндекс
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.14 13:14
Оценка:
Здравствуйте, uzhas, Вы писали:

U>в итоге на экране видим 14, подозреваю, что на x64 мы увидим 0


У x86 младшие байты числа лежат в памяти раньше. Поэтому если передать длинное число как более короткое, они окажутся "совместимы", в том смысле, что если значение длинного влезает в место, отведенного для короткого, то значения совпадут.
Re[3]: Как пройти собеседование в Яндекс
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.14 13:16
Оценка:
Здравствуйте, smeeld, Вы писали:

SA>>Указатель на int — uint вроде бы, 2^32 при компиляции в x32, результат будет uint +int = uint(5), а вот что уже с uint сделает спецификатор d, сие мне неведомо.

S>Тут просто вывод числа 2+sizeof(int)*3

Вообще, нормальный компилятор в этом месте warning напечатает, что аргументы printf'а не соответствуют формату, а если он, к тому же, настроен считать предупреждения ошибками, то программа просто не соберется
Re[4]: Как пройти собеседование в Яндекс
От: smeeld  
Дата: 09.01.14 13:24
Оценка:
Здравствуйте, Pzz, Вы писали:

S>>Тут просто вывод числа 2+sizeof(int)*3


Pzz>Вообще, нормальный компилятор в этом месте warning напечатает, что аргументы printf'а не соответствуют формату, а если он, к тому же, настроен считать предупреждения ошибками, то программа просто не соберется


Запись (int*) сообщает компилятору использовать арифметику указателей. Также необходимо при присваивании
для приведения типов, но здесь этого не происходит. В том же случае записью (int*)2+3 сообщаем требование сложить на x86_64
в линуксе числа 0x0002 и 0x000E и отдать на вывод в форме decimal.
Re[5]: Как пройти собеседование в Яндекс
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.14 13:31
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Запись (int*) сообщает компилятору использовать арифметику указателей. Также необходимо при присваивании

S>для приведения типов, но здесь этого не происходит. В том же случае записью (int*)2+3 сообщаем требование сложить на x86_64
S>в линуксе числа 0x0002 и 0x000E и отдать на вывод в форме decimal.

Спасибо, я в курсе про арифметику указателей.

Однако формат %d ожидает целочисленного аргумента, а не указателя. Нормальные компиляторы про это в курсе, и умеют проверять соответствие формата printf'а переданным аргументам (в пределах разумного, конечно; если формат printf'а задается не строковым литералом, то компилятор, конечно, не сможет понять, что написано в формате, и предупрежденик выдавать не бурет).
Re[6]: Как пройти собеседование в Яндекс
От: smeeld  
Дата: 09.01.14 13:54
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Однако формат %d ожидает целочисленного аргумента, а не указателя. Нормальные компиляторы про это в курсе, и умеют проверять соответствие формата printf'а переданным аргументам (в пределах разумного, конечно; если формат printf'а задается не строковым литералом, то компилятор, конечно, не сможет понять, что написано в формате, и предупрежденик выдавать не бурет).


А число (int*)2+3 это не указатель, это просто число т.е 0x000Е.
Если int* m=(int*)2+3 то директива %d в printf("%d",m);
заставляет компилятор рассматривать m как переменную, содержащую число и выводить его.
Варнинги выводятся если задано -Wall, но вышеприведённый пример работает и выдаёт 14.
Re[7]: Как пройти собеседование в Яндекс
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.14 14:01
Оценка:
Здравствуйте, smeeld, Вы писали:

S>А число (int*)2+3 это не указатель, это просто число т.е 0x000Е.


Выражение (int*)2+3 имеет тип "указатель на int", даже если ни в какое разумное место этот указатель не указывает.

S>Если int* m=(int*)2+3 то директива %d в printf("%d",m);

S> заставляет компилятор рассматривать m как переменную, содержащую число и выводить его.
S>Варнинги выводятся если задано -Wall, но вышеприведённый пример работает и выдаёт 14.

А что, остались еще люди, у которых не заданно -Wall? Смельчаки...
Re[8]: Как пройти собеседование в Яндекс
От: Vzhyk  
Дата: 09.01.14 14:07
Оценка:
1/9/2014 5:01 PM, Pzz пишет:

> А что, остались еще люди, у которых не заданно -Wall? Смельчаки...

Ну, логично предположить, что в означенной конторе.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: Как пройти собеседование в Яндекс
От: wander  
Дата: 09.01.14 14:09
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Варнинги выводятся если задано -Wall, но вышеприведённый пример работает и выдаёт 14.


Никто не спорит, что он работает. Компилятор же сравнивает типы. Потому и варнинг.
Re[7]: Как пройти собеседование в Яндекс
От: B0FEE664  
Дата: 09.01.14 14:12
Оценка:
Здравствуйте, modev, Вы писали:

M>Яндекс просто не умеет бороться с накрутками сео. Наберите в яндексе официальный сайт сапсан, сайт rzd.ru не появляется нигде, зато появляется куча помоечек-посредников, которые за приличную комиссию продают билеты.

У Яндекса Девятая ссылка на первой странице указывает сюда.
А у Гугла на первой странице этой ссылки вообще нет. Зато есть на rzd.ru.

Я бы не сказал, что Гугл лучше.
И каждый день — без права на ошибку...
Re[8]: Как пройти собеседование в Яндекс
От: smeeld  
Дата: 09.01.14 14:17
Оценка: -1
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, smeeld, Вы писали:


S>>А число (int*)2+3 это не указатель, это просто число т.е 0x000Е.


Pzz>Выражение (int*)2+3 имеет тип "указатель на int", даже если ни в какое разумное место этот указатель не указывает.

Фраза выражение имеет тип int* означает, что в нём должна применяться арифметика указателей на int,
и то, что его результат можно присваивать переменной, обьявленной ранее как int*.
Само же значение есть прежде всего число
которое вполне спокойно переваривает printf выводя его просто как занечние.
Re[7]: Ответ сотрудника Яндекса
От: B0FEE664  
Дата: 09.01.14 14:31
Оценка:
Здравствуйте, Handie, Вы писали:

H>В общем, чего и требовалось доказать. Сортировка — это способ сортировать кандидатов.

H>Вот нифига не помню как написать квик сорт или красно-черное дерево. Ни то, ни другое никогда не писал сам.

H>Более того, постепенно становлюсь противником языков с указателями, ручным управлением памяти и структурами данных основанных на указателях. Парадокс, но портировав низко и средненагруженные проекты с C++ на Node.js получили потерю производительности в 1,5-3 раза при сокращении времени девелопмента в 5-10 раз.


Это говорит лишь о том, что вы решаете принципиально другие задачи.
И каждый день — без права на ошибку...
Re[8]: Ответ сотрудника Яндекса
От: B0FEE664  
Дата: 09.01.14 14:44
Оценка:
Здравствуйте, sdf, Вы писали:

I>>Никого не хочу задеть, но очень широко распространено утверждение, что необходимо знание теоретическое тех же алгоритмов сортировки, правда применить его решительно негде.

sdf>Ну например, задача поиска первых минимальных N чисел (т.е., тех, что после сортировки будут идти первыми) в большом несортированом массиве. за O(длины массива) без N проходов по массиву. N << длины массива, массив можно модифицировать.
sdf>Для решения используется тот же подоход. что и у quicksort, но с модификациями. Задача возникает при обработке больших обьемов данных довольно часто.

А что мешает указанный несортированный массив один раз отсортировать? Отсортировать один раз и "хранить вечно".
И каждый день — без права на ошибку...
Re[9]: Как пройти собеседование в Яндекс
От: avpavlov  
Дата: 09.01.14 15:57
Оценка:
5>>Распечатал все задачки из java-вакансий Яндекса. Порешал их все дома спокойно, на мой взгляд достаточно неплохо. На следующий день загрузил решения сразу для нескольких вакансий. Прошел месяц... Ни ответа, ни привета...

_A_>Ну как же, по понятиям жирного тролляумного человека avpavlov они негодные


Ну так и есть. То, что ты и Яндекс друг друга стоите, не значит, что ты был прав
Re[9]: Как пройти собеседование в Яндекс
От: wander  
Дата: 10.01.14 05:15
Оценка:
Здравствуйте, smeeld, Вы писали:

S> Само же значение есть прежде всего число

Этого, строго говоря, никто не гарантирует. Не забываем про другие платформы и архитектуры.
Re[9]: Как пройти собеседование в Яндекс
От: wety Россия  
Дата: 10.01.14 11:33
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> А что, остались еще люди, у которых не заданно -Wall? Смельчаки...

V>Ну, логично предположить, что в означенной конторе.

А как же я? Как же так???
Если использовать jQuery, Javascript, то как узнавать о warning'ах? Это же принципиально невозможно исходя из того, что Javascript — интерпретируемый язык. Вот.
Re[10]: Как пройти собеседование в Яндекс
От: smeeld  
Дата: 10.01.14 11:54
Оценка:
Здравствуйте, wander, Вы писали:

W>Здравствуйте, smeeld, Вы писали:


S>> Само же значение есть прежде всего число

W>Этого, строго говоря, никто не гарантирует. Не забываем про другие платформы и архитектуры.

А вот об этом помним только когда рисуем на asm. Начиная с С и далее вверх,
всю грязную работу связанную с тонкостми little-endian/big-endian делает компилятор
Re[11]: Как пройти собеседование в Яндекс
От: wander  
Дата: 10.01.14 12:27
Оценка:
Здравствуйте, smeeld, Вы писали:

S>всю грязную работу связанную с тонкостми little-endian/big-endian делает компилятор


Я не об этом. Pointer==Integer — не обязано быть true.
Re[12]: Как пройти собеседование в Яндекс
От: smeeld  
Дата: 10.01.14 12:38
Оценка:
Здравствуйте, wander, Вы писали:


W>Я не об этом. Pointer==Integer — не обязано быть true.


Не понял любой Pointer-это Integer который является виртуальным/физическим адресом памяти, шинным адресом, маппингом в память порта.
Re[13]: Как пройти собеседование в Яндекс
От: wander  
Дата: 10.01.14 12:45
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Здравствуйте, wander, Вы писали:



W>>Я не об этом. Pointer==Integer — не обязано быть true.


S>Не понял любой Pointer-это Integer который является виртуальным/физическим адресом памяти, шинным адресом, маппингом в память порта.

Способ хранения не регламентирован именно как integer. В стандарте, по крайней мере, языка.
Re[13]: Как пройти собеседование в Яндекс
От: Vzhyk  
Дата: 10.01.14 12:47
Оценка:
1/10/2014 3:38 PM, smeeld пишет:

> Не понял любой Pointer-это Integer который является

> виртуальным/физическим адресом памяти, шинным адресом, маппингом в
> память порта.
https://www.google.com/search?q=pointer+integer&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:ru:official&amp;client=firefox-a
http://www.viva64.com/en/a/0050/

З.Ы. А вообще жесть тут последнее время.
Posted via RSDN NNTP Server 2.1 beta
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.