Re[13]: Как пройти собеседование в Яндекс
От: wander  
Дата: 10.01.14 12:47
Оценка:
Здравствуйте, smeeld, Вы писали:

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


S>Не понял

Вот, кстати, нашел по теме.
Re[14]: Как пройти собеседование в Яндекс
От: smeeld  
Дата: 10.01.14 13:02
Оценка:
Здравствуйте, wander, Вы писали:

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


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


S>>Не понял

W>Вот, кстати, нашел по теме.

Ну кто спорит, Вы можете определить typedef-ом свой тип/структуру, и использовать его как указатель на что-то
содержащий несколько полей и с информацией о местоположении объекта. Но в контектсе (int*)2+3 — это Integer.
Re[15]: Как пройти собеседование в Яндекс
От: wander  
Дата: 10.01.14 14:11
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Ну кто спорит, Вы можете определить typedef-ом свой тип/структуру, и использовать его как указатель на что-то

S>содержащий несколько полей и с информацией о местоположении объекта. Но в контектсе (int*)2+3 — это Integer.

Не только я могу, но и по умолчанию так может быть организовано. (int*)2 — reinterpret_cast, a +3 уже происходит по всем правилам для указателей с учетом разумеется их внутреннего устройства. Соответственно что получится после обратного reinterpret_cast от получившейся суммы — зависит от реализации. Об этом и была моя ссылка.
Re[13]: Как пройти собеседование в Яндекс
От: eskimo82  
Дата: 10.01.14 18:35
Оценка: +2
S>Не понял любой Pointer-это Integer который является виртуальным/физическим адресом памяти, шинным адресом, маппингом в память порта.
Это не так. Указатель это указатель и не обязан быть чем то иным.

На вскидку, как минимум, можно вспомнить про длинные (far) адреса в архитектуре x86 — они представленны парой сегмент:смещение,
причем в далеком REALMODE один и тот же указатель мог быть представлен нескольким вариантами (база сегмента определяла имела шаг в памяти в 1 параграф (16 байт).

В реализациях языка С++ указатели на элементы класса обычно (и всегда при виртуальном наследовании) представленны в виде структуры из нескольких полей.
Re[14]: Как пройти собеседование в Яндекс
От: smeeld  
Дата: 10.01.14 20:24
Оценка:
Здравствуйте, eskimo82, Вы писали:


E>На вскидку, как минимум, можно вспомнить про длинные (far) адреса в архитектуре x86 — они представленны парой сегмент:смещение,

E>причем в далеком REALMODE один и тот же указатель мог быть представлен нескольким вариантами (база сегмента определяла имела шаг в памяти в 1 параграф (16 байт).

E>В реализациях языка С++ указатели на элементы класса обычно (и всегда при виртуальном наследовании) представленны в виде структуры из нескольких полей.


Виртуальный адрес 0xXXXXXXXX в linux абстрактная матрёшка cr3->pgd_t->pmd_t->pte_t->page->offset
Но при этом 0xXXXXXXXX+0xYYYYYYYY=0xZZZZZZZZ
Поэтому повторю, что в контексте print (int*)2+3 это просто вывод числа 14 экран.
Re[2]: Как пройти собеседование в Яндекс
От: Abalak США  
Дата: 10.01.14 23:01
Оценка: -1
Здравствуйте, N.E., Вы писали:

NE>Так? Так!


А где плюсик от wety???
Re[15]: Как пройти собеседование в Яндекс
От: dilmah США  
Дата: 10.01.14 23:24
Оценка:
S>Ну кто спорит, Вы можете определить typedef-ом свой тип/структуру, и использовать его как указатель на что-то
S>содержащий несколько полей и с информацией о местоположении объекта. Но в контектсе (int*)2+3 — это Integer.

да не только он может определить.
Компилятор может определить -- компилировать указатели в нечто сложное (например содержащее дебажную информацию).
И он (компилятор) будет прав постольку поскольку не будет нарушать стандарт и пока будет предоставлять абстрактную машину С++ удовлетворяющую стандарту.
Re[9]: Как пройти собеседование в Яндекс
От: MTD https://github.com/mtrempoltsev
Дата: 11.01.14 18:27
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Здесь точно выложено, что им нужно


S>http://habrahabr.ru/company/yandex/blog/206234/#comment_7104756


Атас какой код пишут знатоки быстрой сортировки
Re[15]: Как пройти собеседование в Яндекс
От: eskimo82  
Дата: 11.01.14 20:19
Оценка:
S>Виртуальный адрес 0xXXXXXXXX в linux абстрактная матрёшка cr3->pgd_t->pmd_t->pte_t->page->offset
S>Но при этом 0xXXXXXXXX+0xYYYYYYYY=0xZZZZZZZZ

Ты путаеш общее с частным. В конкретных случаях указатель может быть выражен как число.
В других случаях, указатель не может быть выражен как число, и даже не может быть выражен единственным значением, но тем не менее алгебра указателей не меняется.


S>Поэтому повторю, что в контексте print (int*)2+3 это просто вывод числа 14 экран.


А здесь ты путаеш сущность и её представление. В текущих реалиях любая сущность может быть представленна как угодно — набором чисел, бит.
То, что конкретно для одной платформы представление числа и представление указателя совпали — еще ничего не означает.
Даже "контекст print" ничего не обызывает, например под DOS, вывод для far int * будет совсем другим.
Re[8]: Как пройти собеседование в Яндекс
От: eskimo82  
Дата: 11.01.14 22:26
Оценка: :)
5>Распечатал все задачки из java-вакансий Яндекса. Порешал их все дома спокойно, на мой взгляд достаточно неплохо. На следующий день загрузил решения сразу для нескольких вакансий. Прошел месяц... Ни ответа, ни привета...

Там таймер стоит. Поэтому ответа нет потому что:
— ты решал слишком долго (не стёр вчерашние кукисы)
— ты решал слишком быстро (загрузил и моментально отправил)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.