|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.05.2009, 23:01 | #11 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 110
|
Взял на себя смелость и изменил функцию:
Код:
Код:
|
09.05.2009, 23:05 | #12 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Внутри функции то Вы указатели поменяли, но они передаются по значению и потому вне функции ничего не поменяется
|
09.05.2009, 23:08 | #13 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 110
|
|
10.05.2009, 00:08 | #14 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
ПОЧЕМУ так происходит? почему результат разный?
Последний раз редактировалось Dimarik; 10.05.2009 в 00:12. |
10.05.2009, 00:23 | #15 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Результат не разный. Если вы вызовете сделаете две программы, в одной из которых будет использоваться первая функция, а в другой - вторая, то результат будет один и тот же.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
10.05.2009, 02:29 | #16 |
Форумчанин
Регистрация: 01.05.2009
Сообщений: 110
|
Может так понятнее будет:
Код:
Код:
Когда пишется вот так: Код:
Код:
А вот передача по ссылке или указателю работает с теми же переменными, не копируя, а просто передавая функции указатели на них. Код:
Код:
|
10.05.2009, 03:13 | #17 | |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
Цитата:
Код:
swapp получает указатели т.е не адреса в памяти где находятся данные, а переменные которые его содержат(в памяти находятся в другом месте(где угодно)). В языке Cи, переданный в функцию указатель, изменить нельзя т.к он отличается даже от того что передан(т.е это уже другой указатель содержащий тот-же адрес) . Но, можно менять данные на которые он указывает: Код:
ps: В качестве эксперимента, можно поменять данные в памяти кот-е нахлдятся сразу за областью занятой переменной например wallet1. Проверить что за ней можно так: int *p = &wallet1; теперь *p это wallet1, *++p, это то что за wallet1. Там может быть что угодно(любой технический мусор или какая-нибудь другая переменная). Но может оказаться что памяти больше нету и возникнет ошибка. В современных компах памяти дофига(обычно), а современные операционки используют всю динамическую память. Так что можно "вылазить" за пределы массивов особо не боясь(было-бы зачем). Код:
Код:
Последний раз редактировалось Nomlpppp; 10.05.2009 в 03:57. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разница между двумя Bitmap | Seqular | Общие вопросы .NET | 2 | 25.04.2009 17:31 |
Разница между датами | kykysya | Общие вопросы Delphi | 8 | 26.03.2009 18:22 |
Какая разница в css между id и class? | Красавчег))) | HTML и CSS | 6 | 05.08.2008 14:44 |
Какая разница между MS Visual и C++ | Fanta_Clour | Софт | 2 | 09.03.2008 18:33 |
Разница между датами | deenka | БД в Delphi | 3 | 31.01.2008 13:21 |