Здравствуйте, uzhas, Вы писали:
U>в итоге на экране видим 14, подозреваю, что на x64 мы увидим 0
У x86 младшие байты числа лежат в памяти раньше. Поэтому если передать длинное число как более короткое, они окажутся "совместимы", в том смысле, что если значение длинного влезает в место, отведенного для короткого, то значения совпадут.
Здравствуйте, smeeld, Вы писали:
SA>>Указатель на int — uint вроде бы, 2^32 при компиляции в x32, результат будет uint +int = uint(5), а вот что уже с uint сделает спецификатор d, сие мне неведомо. S>Тут просто вывод числа 2+sizeof(int)*3
Вообще, нормальный компилятор в этом месте warning напечатает, что аргументы printf'а не соответствуют формату, а если он, к тому же, настроен считать предупреждения ошибками, то программа просто не соберется
Здравствуйте, Pzz, Вы писали:
S>>Тут просто вывод числа 2+sizeof(int)*3
Pzz>Вообще, нормальный компилятор в этом месте warning напечатает, что аргументы printf'а не соответствуют формату, а если он, к тому же, настроен считать предупреждения ошибками, то программа просто не соберется
Запись (int*) сообщает компилятору использовать арифметику указателей. Также необходимо при присваивании
для приведения типов, но здесь этого не происходит. В том же случае записью (int*)2+3 сообщаем требование сложить на x86_64
в линуксе числа 0x0002 и 0x000E и отдать на вывод в форме decimal.
Здравствуйте, smeeld, Вы писали:
S>Запись (int*) сообщает компилятору использовать арифметику указателей. Также необходимо при присваивании S>для приведения типов, но здесь этого не происходит. В том же случае записью (int*)2+3 сообщаем требование сложить на x86_64 S>в линуксе числа 0x0002 и 0x000E и отдать на вывод в форме decimal.
Спасибо, я в курсе про арифметику указателей.
Однако формат %d ожидает целочисленного аргумента, а не указателя. Нормальные компиляторы про это в курсе, и умеют проверять соответствие формата printf'а переданным аргументам (в пределах разумного, конечно; если формат printf'а задается не строковым литералом, то компилятор, конечно, не сможет понять, что написано в формате, и предупрежденик выдавать не бурет).
Здравствуйте, Pzz, Вы писали:
Pzz>Однако формат %d ожидает целочисленного аргумента, а не указателя. Нормальные компиляторы про это в курсе, и умеют проверять соответствие формата printf'а переданным аргументам (в пределах разумного, конечно; если формат printf'а задается не строковым литералом, то компилятор, конечно, не сможет понять, что написано в формате, и предупрежденик выдавать не бурет).
А число (int*)2+3 это не указатель, это просто число т.е 0x000Е.
Если int* m=(int*)2+3 то директива %d в printf("%d",m);
заставляет компилятор рассматривать m как переменную, содержащую число и выводить его.
Варнинги выводятся если задано -Wall, но вышеприведённый пример работает и выдаёт 14.
Здравствуйте, 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? Смельчаки...
Здравствуйте, modev, Вы писали:
M>Яндекс просто не умеет бороться с накрутками сео. Наберите в яндексе официальный сайт сапсан, сайт rzd.ru не появляется нигде, зато появляется куча помоечек-посредников, которые за приличную комиссию продают билеты.
У Яндекса Девятая ссылка на первой странице указывает сюда.
А у Гугла на первой странице этой ссылки вообще нет. Зато есть на rzd.ru.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, smeeld, Вы писали:
S>>А число (int*)2+3 это не указатель, это просто число т.е 0x000Е.
Pzz>Выражение (int*)2+3 имеет тип "указатель на int", даже если ни в какое разумное место этот указатель не указывает.
Фраза выражение имеет тип int* означает, что в нём должна применяться арифметика указателей на int,
и то, что его результат можно присваивать переменной, обьявленной ранее как int*.
Само же значение есть прежде всего число
которое вполне спокойно переваривает printf выводя его просто как занечние.
Здравствуйте, Handie, Вы писали:
H>В общем, чего и требовалось доказать. Сортировка — это способ сортировать кандидатов. H>Вот нифига не помню как написать квик сорт или красно-черное дерево. Ни то, ни другое никогда не писал сам.
H>Более того, постепенно становлюсь противником языков с указателями, ручным управлением памяти и структурами данных основанных на указателях. Парадокс, но портировав низко и средненагруженные проекты с C++ на Node.js получили потерю производительности в 1,5-3 раза при сокращении времени девелопмента в 5-10 раз.
Это говорит лишь о том, что вы решаете принципиально другие задачи.
Здравствуйте, sdf, Вы писали:
I>>Никого не хочу задеть, но очень широко распространено утверждение, что необходимо знание теоретическое тех же алгоритмов сортировки, правда применить его решительно негде. sdf>Ну например, задача поиска первых минимальных N чисел (т.е., тех, что после сортировки будут идти первыми) в большом несортированом массиве. за O(длины массива) без N проходов по массиву. N << длины массива, массив можно модифицировать. sdf>Для решения используется тот же подоход. что и у quicksort, но с модификациями. Задача возникает при обработке больших обьемов данных довольно часто.
А что мешает указанный несортированный массив один раз отсортировать? Отсортировать один раз и "хранить вечно".
5>>Распечатал все задачки из java-вакансий Яндекса. Порешал их все дома спокойно, на мой взгляд достаточно неплохо. На следующий день загрузил решения сразу для нескольких вакансий. Прошел месяц... Ни ответа, ни привета...
_A_>Ну как же, по понятиям жирного тролляумного человека avpavlov они негодные
Ну так и есть. То, что ты и Яндекс друг друга стоите, не значит, что ты был прав
Здравствуйте, smeeld, Вы писали:
S> Само же значение есть прежде всего число
Этого, строго говоря, никто не гарантирует. Не забываем про другие платформы и архитектуры.
Здравствуйте, Vzhyk, Вы писали:
>> А что, остались еще люди, у которых не заданно -Wall? Смельчаки... V>Ну, логично предположить, что в означенной конторе.
А как же я? Как же так???
Если использовать jQuery, Javascript, то как узнавать о warning'ах? Это же принципиально невозможно исходя из того, что Javascript — интерпретируемый язык. Вот.
Здравствуйте, wander, Вы писали:
W>Здравствуйте, smeeld, Вы писали:
S>> Само же значение есть прежде всего число W>Этого, строго говоря, никто не гарантирует. Не забываем про другие платформы и архитектуры.
А вот об этом помним только когда рисуем на asm. Начиная с С и далее вверх,
всю грязную работу связанную с тонкостми little-endian/big-endian делает компилятор
Здравствуйте, smeeld, Вы писали:
S>Здравствуйте, wander, Вы писали:
W>>Я не об этом. Pointer==Integer — не обязано быть true.
S>Не понял любой Pointer-это Integer который является виртуальным/физическим адресом памяти, шинным адресом, маппингом в память порта.
Способ хранения не регламентирован именно как integer. В стандарте, по крайней мере, языка.