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

Недопонимание указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вынос строк для SQL запросов наружу http://www.cyberforum.ru/cpp-beginners/thread646148.html
Есть проект который интенсивно работает с базой данный при помощи запросов. Выходной файл имеет размер ~6 Mb. И мне пришла идея вынести все строки SQL запросов в наружный файл (.dll или что-то...
C++ Вызов конструктора со скобками и без Всем здравствуйте С++ только изучаю. В общем, есть у меня такой код: #include <iostream> using namespace std; class Test { public : Test() : data(777) http://www.cyberforum.ru/cpp-beginners/thread646145.html
C++ Как правильно вставить код на ассемблере?
Есть такой код: struct { unsigned long first_sect; unsigned nsect; void *buf; } cb; /** * getboot
C++ Ошибка при компиляции
При компиляции конструктора класса, имеющего один из аргументов другого класса получаю ошибку. Ниже листинг программы и код ошибки. // Date 9.7.1.h #include"Month.h" class Year { class...
C++ Пять самых длинных слов http://www.cyberforum.ru/cpp-beginners/thread646068.html
Дана строка слов разделенных пробелами, запятыми, точками. Сформируйте новую строчку из пяти самых длинных слов. #include <iostream> #include <string.h> using namespace std; void main(){...
C++ this и конструктор Всем привет! Столкнулся с задачей: У класса есть статический указатель, который инициализируется CableTV* CableTV :: ptr = new CableTV; Есть также два указателя в привате ... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,669
Записей в блоге: 5
14.09.2012, 17:08
Цитата Сообщение от kotleta Посмотреть сообщение
Кстати, а почему так происходит?
Я про пример Hydrogen
Отправили переменную int g себе ее скопировал (положил значение в свою ячейку)
инкрементировался, потом еще инкрементировался
Потом вышли из блока, и память освободилась, и 6 в ячейке памяти осталось, только теперь эта ячейка свободна, и другая переменная ее может использовать.
В чем дело?
Если я понял в чем вопрос:
Сигнатура объявления или заголовок функции:
Тип Имя ( Тип1 <Имя1>, Тип2 <Имя2>, Тип3 <Имя3>....);
В сигнатуре описания:
Тип Имя ( Тип1 Имя1, Тип2 Имя2, Тип3 Имя3....){}
Это не спроста, что здесь Имя1, Имя2, Имя3 должны быть указаны. Потому, что в скобках показано объявление, локальных внутри функции как блока (см. фиг. скобки), переменных. В них функция копирует передаваемые параметры. Независимо от того, значения это или адреса (указатели, ссылки). При копировании, производится преобразование типов, если требуется и возможно.
То есть при передаче значения, функция работает с копией переданного значения, а при передаче указателя, - с копией указателя. Разница в том, что если в функции указатель разыменовывается, то несмотря на то, что указатель - копия, доступ получается к значению переменной на которую он указывает. Тогда если происходит изменения этого значения, то адресуемая указателем переменная изменится везде, где её видно и за пределами функции.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru