Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Чем полезны указатели? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнение трех первых чисел из пяти http://www.cyberforum.ru/cpp-beginners/thread466701.html
Esli mne nyshno sravnit tolko pervue 3 posizii is 5. Kak mne eto sdelat? (strcmp(Modifier1,'040??')== 0)
C++ как победить Double? Float? C++ - так описать нельзя( ну и как мне ее сделать глобальной и есть ли ограничение на кол-во переменных типа ?????? у меня их порядка 40 штук а программу надо написать хоть головой об столб??... http://www.cyberforum.ru/cpp-beginners/thread466660.html
Может кто знает, как использовать камеру? C++
Привет All! Никто не сталкивался с использованием web-камер в своих программах? Т.е. я абсолютно не знаю в виде чего, как и куда направляется изображение с камеры. Но есть предположение, что это...
Как в потоковом вводе перейти на чтение следующей строки? C++
Подскажите пожалуйста, как в потоковом вводе из текстового файла перейти на чтение следующей строки: ifstream filein(...) filein >> num1 >> num2 >> ??? // строка1 filein >> num3 >> num4 >> ??? //...
C++ Как в заголовке окна проекта убрать 'Untitled'? http://www.cyberforum.ru/cpp-beginners/thread466556.html
Как в заголовке окна проекта убрать 'Untitled'? Как в строке состояния расположить свои элементы в заданном месте? Спасибо!
C++ Группа профессионалов выполнит заказ любой сложности Группа профессионалов выполнит заказ любой сложности, практически в любой среде разработки, как для локального использования, так и системы управления связи и т.п. Подробнее о нас:... подробнее

Показать сообщение отдельно
VVP
Сообщений: n/a
24.04.2008, 14:57
2vzhookov: На самом деле и в паскале параметры ТОЖЕ передаются по значению, куда же без этого. Если вы в паскале напишете
Pascal
1
2
3
4
procedure proc(a: integer);
begin
...
end;
то переменная a будет передана по значению. В процессе передачи параметров с указанием var происходит передача ЗНАЧЕНИЯ указателя на значение, с которым вы работаете в исходнике как с переменной целого (в данном случае) типа. Другое дело (в дельфях), когда вы работаете с классами, там класс никогда не передается по значению (и соответственно не вызывается конструктор локальной копии).
В C++ указание для параметра необходимости передачи по ссылке '&', с логической точки зрение, абсолютно эквивалентно квалификатору 'var' параметра в паскале.
Так что единственное, что можно сказать: параметры всегда передаются по значению. Весь вопрос в том, что является реальным параметром.
В паскале вы можете сделать параметром указатель:
Pascal
1
2
3
4
5
6
7
8
type PInt=^integer;
procedure proc(a: PInt); 
 
procedure proc2;
var a: integer;
begin
  proc(@a); // передаем адрес переменой, значение адреса копируется в стек!!!
end;
это эквивалентно сишной записе void proc(int *a). И значение указателя будет передано по значению!!!
Вообще всегда при передаче параметров создается локальная копия передаваемого параметра в стеке. И еще раз - весь вопрос в том, что такое передаваемый параметр.
В своем большинстве работа с указателями в паскале и сях не отличается. А вот механизм ссылки более развит в С++, но это уже другая история.

Успехов.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru