Ошибки PascalABC.NET

Да, загадка…

Ну, integer^ я добавил только ради порядка (для всего остального в этом тесте есть 2 варианта в том же стиле). А основной вопрос - почему ^p и p^ работают одинаково на чтение, но по разному на запись (и, оказывается, ещё и на форматирование)?

Думается, не фича это, но бага ))

Надеюсь, исправят. Хотя… Не понятно, как такое вообще возможно.

А для чего, кстати, вы использовали для первого вывода Writeln с пробелами, хотя Println как и для второго вывода имеет больше смысла (всм он сам пробелы добавляет) ?))

Не забываем про это :smile:

Вряд ли 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
1 лайк

А, понятно…

  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 это ошибка

1 лайк