![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Guest |
|
|||
|
Unregistered |
Каким образом работает данный код:
char **ptr, a=68; *ptr=&a; cout << ptr; Вопрос в следующем: что будет выведено на экран? Ведб по идее должен вывестись адрес переменной 'a', но для этого он должен обратиться к ячейке, содержащий указатель на 'a'. А мы ведь не объявляли такого указателя... еслиб код был такой: char **ptr, *ptr2, a=68; ptr2=&a; ptr=&ptr2; cout << ptr; то вопросов нет... объясните пожалуйста, что происходит в 1- ом случае... |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
я думаю будет ошибка синтаксиса...
--------------------
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
В том то и дело, что нет ошибок...
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
*ptr=&a;
Программа здесь уже должна вылететь. Ты записываешь значение на место, которое система тебе не выдала. cout << ptr; Ой, извини, ошибся! - А распечатываешь ты таким образом участок памяти от ptr до первой нулевой ячейки. + Двойной указатель иммено как адресс и распечатывается Это сообщение отредактировал(а) sergej.z - 12.5.2004, 03:17 |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
все ясно (в прынцыпе вопрос решен). я тоже думал изначально, что она должна вылетать, но она не вылетала (видимо по чистой случайности). счас попробовал, действительно вылетела.
А иногда всеж- таки бывает срабатывает и выводит какой- то адрес (не знаю откуда берет)... но как я понимаю это спецификацией языки СИ объясняется... бывает же такое |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Компилируй с опцией -Wall (кажется так) что бы компилер выдавал все Warnings.
Он тогда скажет тебе что то типа "Variable ptr used without having been initialized". PS:
&a - Обьявление указателя |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |