singlepost

Что делает эта конструкция? Pascal << На главную или назад  

Задачка посвящена великому и могучему языку под названием паскаль и ниже с ним дано: var str:string; требуется доказать,что делает эта милая конструкция: inteper (Pointer(integer(@(str[1]))-4)^)

12 ответов в теме “Что делает эта конструкция? Pascal”

  1. 12
    Антон Щиров ответил:

    Так все таки делфи. Ответ – возвращает счетчик ссылок на строку

  2. 11
    Alexander Zubakov ответил:

    Ну так самой и надо было тренироваться ;)

  3. 10
    Варвара Ыытьнах ответил:

    Этакую задачу мне брат придумал-для тренировки

  4. 9
    Дима Мироводин ответил:

    -4 Это по тому что delphi и длинные строки.

  5. 8
    Алексей Сторожев ответил:

    //delphi-faq.zoxt.net/1543.htm
    тут что-то такое творят, но для меня это осталось загадкой ))

  6. 7
    Макаров Вася ответил:

    если возвращает длину, то почему "-4"? длина паскальной строки хранится в 1байте вроде?

  7. 6
    Александр Чигринец ответил:

    требуется доказать,что делает эта милая конструкция: inteper (Pointer(integer(@(str[1]))-4)^)

    Доказываеться просто: берётся значение этого выражения и сравнивается с Length(str)
    По идее должно возвращать одно и тоже. Хотя, может и не вернуть, поскольку расположение длины перед первым символом строки не является документированной функцией.

  8. 5
    Дима Мироводин ответил:

    Возвращает длину строки str.

    Если кто то реально такое использует в коде, то это да же не быдлокодер.

    PS. кстати если задача из института, то интересно где такое задают ?

  9. 4
    Алексей Гридин ответил:

    Берём адрес первого символа, потом отнимаем четыре байта – получаем адрес самой строки; потом в интежер, потом делаем указатель, в итоге на предпоследнем этапе должны по идее получить нашу исходную строку. А вот что делаетinteper- я хз.

  10. 3
    Алексей Сторожев ответил:

    указатель на первый символ строки преобразуется в число, от него отнимается 4, из этого делается указатель, читаются данные из этого указателя, и это является параметром функции integer ()

  11. 2
    Варвара Ыытьнах ответил:

    Эт случайно ) лучше с задачей помоги

  12. 1
    Варвара Ыытьнах ответил:

    Даже не паскаль,а дельфи

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.