Да, загадка…
Ну, integer^
я добавил только ради порядка (для всего остального в этом тесте есть 2 варианта в том же стиле). А основной вопрос - почему ^p
и p^
работают одинаково на чтение, но по разному на запись (и, оказывается, ещё и на форматирование)?
Думается, не фича это, но бага ))
Надеюсь, исправят. Хотя… Не понятно, как такое вообще возможно.
А для чего, кстати, вы использовали для первого вывода Writeln
с пробелами, хотя Println
как и для второго вывода имеет больше смысла (всм он сам пробелы добавляет) ?))
Не забываем про это
Вряд ли RAlex забыл. Print
не умеет печатать адреса (почему-то). А Write
умеет. Попробуйте.
А они в каком виде нужны? Можно так написать:
var adr := Int32(p).ToString();
И передать его в виде строки куда угодно.
Можно просто вывести с новой строки:
Console.WriteLine(adr);
Именно так.
Нет, ну это точно не правильно…
вы ошибаетесь. object и указатели несовместимы.
Тогда почему это работает:
begin
var i := 5;
writeln(0,'',@i);
end.
И надо тогда хотя бы сделать чтоб это тоже работало:
begin
var i := 5;
Println(0,'',@i);
end.
Потому что write магическая функция
Oh Ho Ho It’s magic
You know
Never believe its not so
It’s magic
You know
А, понятно…
writeln(0,'',@i);
\/
Program.$intarr1[0] = (object) 0;
Program.$intarr1[1] = (object) "";
Program.$intarr1[2] = (object) new PointerOutput((void*) &num1);
PABCSystem.PABCSystem.Writeln(Program.$intarr1);
Ну хорошо, но всё равно тогда надо сделать так же для Print
.
И что с первым вопросом то?
" Неприличными словами не выражаться! " (с)
Не, я могу и на циле кинуть, но так по моему лучше))))
- Циля?
- Анцифер!
- Не важно, отбросим формальности...
( А. Белянин. Моя жена - ведьма)
Но всё же, как то изначальный вопрос ушёл далеко и остался не отвечен:
^p это ошибка