|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.01.2012, 23:30 | #1 |
Регистрация: 13.07.2011
Сообщений: 6
|
какая разница между const var и без ничего в процедуре
буду очень благодарен, если вы мне объясните какая разница между
const var и без ничего в процедуре. вот пример. procedure lalala(x,y: integer); begin .... end; procedure lalala(var x,y: integer); begin .... end; procedure lalala(const x,y: integer); begin .... end; |
10.01.2012, 23:53 | #2 |
Пользователь
Регистрация: 18.04.2009
Сообщений: 44
|
Код:
Например Код:
Код:
Код:
Программы на заказ Delphi, Pascal, PHP.
ICQ:636-494-826 E-mail:serj0987@yandex.ru. Последний раз редактировалось Serj0987; 10.01.2012 в 23:56. |
11.01.2012, 20:37 | #3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,331
|
Всё верно, небольшое уточнение:Данные передаются в п/п через стек!
Через этот стек можно передать в п/п как сами значения, так и адреса сегмента данных, по которым размещены эти значения. При передаче только значений, п/п не получает адреса по которым эти значения размещены и не может их изменить: <переменная>:<тип>. Вместо значений можно записывать выражения, которые вычисляются, а результат вычисления передаётся в п/п.При передаче адреса п/п знает место размещения данных в сегменте данных и может их изменять. Это позволяет вычислять значения в п/п и возвращать результат вычисления в программу: Var <переменная>:<тип>. Такой способ хорош, когда в п/п формируется сложный тип данных: массив, запись,...Этот способ не всегда хорош, поскольку в сложных случаях можно написать код, который испортит исходные данные. Для защиты таких данных, которые не желательно портить, адрес области их размещения передаётся через стек структурой: Const <переменная> : <тип>. Компилятор контролирует способ передачи данных и при попытке написания кода, изменяющего содержание таким образом описанной переменной, выдаст ошибку.Существует и такой способ передачи адреса, когда компилятор контролирует возможность чтения данных. Т.е. писать данные в переменную можно, а прочитать содержимое - нельзя! Для такого случая используется другое "волшебное словечко" :-)
Как-то так, ...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какая разница в двух строках? | bullvinkle | HTML и CSS | 2 | 07.12.2009 18:17 |
Какая разница в css между id и class? | Красавчег))) | HTML и CSS | 6 | 05.08.2008 14:44 |
Какая разница между MS Visual и C++ | Fanta_Clour | Софт | 2 | 09.03.2008 18:33 |
Какая разница,между ClientSockets и ServerSockets или [indy] T | andrey4623 | Компоненты Delphi | 3 | 18.08.2007 03:29 |