Задачка посвящена великому и могучему языку под названием паскаль и ниже с ним дано: var str:string; требуется доказать,что делает эта милая конструкция: inteper (Pointer(integer(@(str[1]))-4)^)
Задачка посвящена великому и могучему языку под названием паскаль и ниже с ним дано: var str:string; требуется доказать,что делает эта милая конструкция: inteper (Pointer(integer(@(str[1]))-4)^)
Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.
6 ноября 2008 в 1:02
Так все таки делфи. Ответ – возвращает счетчик ссылок на строку
5 ноября 2008 в 22:04
Ну так самой и надо было тренироваться
5 ноября 2008 в 16:00
Этакую задачу мне брат придумал-для тренировки
5 ноября 2008 в 15:01
-4 Это по тому что delphi и длинные строки.
5 ноября 2008 в 15:00
//delphi-faq.zoxt.net/1543.htm
тут что-то такое творят, но для меня это осталось загадкой ))
5 ноября 2008 в 14:03
если возвращает длину, то почему "-4"? длина паскальной строки хранится в 1байте вроде?
5 ноября 2008 в 14:00
требуется доказать,что делает эта милая конструкция: inteper (Pointer(integer(@(str[1]))-4)^)
Доказываеться просто: берётся значение этого выражения и сравнивается с Length(str)
По идее должно возвращать одно и тоже. Хотя, может и не вернуть, поскольку расположение длины перед первым символом строки не является документированной функцией.
5 ноября 2008 в 13:04
Возвращает длину строки str.
Если кто то реально такое использует в коде, то это да же не быдлокодер.
PS. кстати если задача из института, то интересно где такое задают ?
5 ноября 2008 в 13:02
Берём адрес первого символа, потом отнимаем четыре байта – получаем адрес самой строки; потом в интежер, потом делаем указатель, в итоге на предпоследнем этапе должны по идее получить нашу исходную строку. А вот что делаетinteper- я хз.
5 ноября 2008 в 12:05
указатель на первый символ строки преобразуется в число, от него отнимается 4, из этого делается указатель, читаются данные из этого указателя, и это является параметром функции integer ()
5 ноября 2008 в 12:04
Эт случайно ) лучше с задачей помоги
5 ноября 2008 в 12:00
Даже не паскаль,а дельфи