Re: js - по ссылке или по значениею | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Впрочем, можно копнуть ещё глубже (до ассемблера/машинных кодов). Переменная с точки зрения ассемблера - это адрес ячейки памяти. Когда выполняется какое то действие с переменной (например, пересылка - mov), указывается её адрес (либо, имя регистра). Так что, выражение "передаём САМу переменную" означает "передаём адрес переменной". Вот так, ближе к полтиннику, начинаешь постигать программирование Исправлено 1 раз(а). Последнее : S-type, 30.12.16 14:39 |
Re: js - по ссылке или по значениею | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> выражение "передаём САМу переменную" означает "передаём адрес переменной".
А когда, при вызове FUNC(0), механизм передачи параметров заносит в стек (или в регистр, или в другой механизм передачи) число 0, то какой адрес он помещает в стек ? На месте 0, механизм мог бы взять значение какой-то переменной, и тоже поместить его в стек. Никакой адрес не нужен. Только если есть специальное желание передать адрес (об этом надо сообщить, при разработке, и функции и вызывающему механизму). Желание возникает, чтобы управлять этим значением снаружи функции... |
Re: js - по ссылке или по значениею | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Это относится к передаче "по ссылке" А это относится к передаче "по значению". |
Re: js - по ссылке или по значениею | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Либо регистр процессора - для x86, для каких-то иных архитектур может быть ещё что-то своё. Одно "действие" на языке высокого уровня это может быть целая куча машинных команд, и совсем не обязательно при этом будет использоваться память (и, соответственно, "адреса") - но с точки зрения семантики высокоуровневого языка да, передача "по ссылке" это передача того или иного вида "указателя" на соответствующую "переменную". Т.е. возможность работать непосредственно с "той же самой" переменной что и в вызывающем коде. Могут быть, конечно, ограничения - например модификатор const в си - он не позволит "пересоздать" исходный объект (т.е. выделить новый блок памяти, инициализировать его и поместить "новый адрес" в эту самую переменную), но работа будет вестись именно с самим этим объектом, а не его копией. Надеюсь, с передачей параметров в Си (где передаются всегда "значения", а для объектов - их копии, и чтобы передать ссылку/указатель нужно явно так и писать) уже всё понятно ------------------ WBR, Igor |
© 2000-2024 Fox Club  |