Re[10]: Комплексные числа
От: vdimas Россия  
Дата: 26.01.22 21:43
Оценка:
Здравствуйте, T4r4sB, Вы писали:

TB>Послушай дядя, давай ты перестанешь сам себе противоречить

TB>извинишься за пиписькомерский базар или пойдёшь нафиг, ок?

Или в другой раз будешь аккуратней с безапелляционными заявлениями.
На них чаще реагируют. ))


TB>Ты противоречия не видишь, не?


Были бы противоречия, ты бы их давно показал.


TB>Смотри, индекс — это смещение.


Смотрю — для массива [1..10] это уже не так.

Еще раз, медленно, индекс — это некие данные, требуемые для поиска целевых.
Для поиска целевых данных по нулевому смещению в массиве выше индекс будет равен 1.
(и на всяк случай — смещение не в байтах, а в элементах)


TB>Смещение — это разница между адресом элемента и адресом начала. Значит, индекс знаковый, это если махать руками, как ты любишь.


Индекс может быть знаковым, ес-но, о чём было сказано:

тип интегрального выражения-индекса массива в Си приводится компилятором к size_t или ptrdiff_t, т.е. к беззнаковому или знаковому интегральному типу шириной в адрес данных


Встроенный массив в Си представлен адресом своего первого элемента.
Разница указателей — это знаковый тип ptrdiff_t, значение этого типа может быть индексом массива или, согласно адресной арифметике Си, значение типа ptrdiff_t можно складывать со значением указателя, получая положительно или отрицательно смещенное итоговое значение. Вычитать тоже можно, ес-но.


TB>А если смотреть на практику, а не на твои бессмысленные философствования, то беззнаковые индексы — это проблема и скрытая ловушка для некоторых видов вычислений. Вот и всё.


Я нигде не вижу беззнаковых индексов, ни в С/С++, ни в си-подобном C#, где индекс массива привоится либо к int, либо к long.

"Проблема" там только для тех, кто плавает в самой базе.
Индекс массива унутре всегда приводится к ширине адреса, где последующим вычислениям, происходящим в дополнительном двоичном коде, ГЛУБОКО ДО ФЕНИ насчёт того, знаковый был тип второго слагаемого или нет. ))

Т.е., эти условности

тип интегрального выражения-индекса массива в Си приводится компилятором к size_t или ptrdiff_t, т.е. к беззнаковому или знаковому интегральному типу шириной в адрес данных

работают сугубо в процессе расширения интегрального значения выражения-индекса до ширины адреса.

И да, в том же дотнете уже ввели тип данных nint — это знаковый тип данных шириной в native адрес, поэтому вопрос можно считать почти исчерпанным.
В сях давно околостандартным стал аналогичный ssize_t.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.