|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.02.2012, 17:58 | #1 |
Пользователь
Регистрация: 05.02.2012
Сообщений: 17
|
Указатель в цикле for
Сидел писал себе код писал и в итоге столкнулся с проблемой.
Начал откатывать себя постепенно назад и в итоге пришёл вообще к самому маленькому варианту кода который так же как и более огромный отказывается делать то что я хочу Код HTML:
int varName; cin >> varName; for (;;) { varName++; int* varName2 = &varName; cout <<varName2; } Я это код понимаю так: Объявляется переменная Код HTML:
int varName; Код HTML:
cin >> varName; Код HTML:
for (;;) Код HTML:
varName++; Код HTML:
int* varName2 = &varName; Код HTML:
cout <<varName2; Ввожу например 100 он так и будет адрес сотни штамповать хотя там же инкремент стоит он же должен наращивать и тем самым давать на экран новые адреса от значений 100 101 102 103 ....... и так далее. Где я лопухнулся |
18.02.2012, 18:08 | #2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Почему он получает только 1 адрес и всё.
потому что ты делаешь: Создаём указатель с именем varName2 который содержит адрес памяти переменной varName Ты каждый раз берёшь адрес одной и той же переменной и выводишь его. У тебя каждый раз выводится один и тот же адрес. |
18.02.2012, 18:12 | #3 | |
Новичок
Джуниор
Регистрация: 18.02.2012
Сообщений: 4
|
Непонятная какая то программа =) Смысла не вижу
Ну а по сути Ты хочешь чтобы у тебя адрес всегда выводился разный? Так он НЕ будет выводится разный потому что ты присваиваешь этому указателю адрес переменной varName. Она у тебя всегда имеет один и тот же адрес в цикле. Ты инкрементируешь значание переменной varName, что никак не меняет её адреса. PS Не понял что ты хочешь увидеть на экране. Ты делаешь абсолютно две разные вещи помоему. PSS И еще, ты создаешь указатель а еще нужно выделять память под него, если я не ошибаюсь. Цитата:
|
|
18.02.2012, 18:26 | #4 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
|
18.02.2012, 21:14 | #5 |
Форумчанин
Регистрация: 18.02.2012
Сообщений: 155
|
Ты указываешь каждый раз на одну и ту же переменную. Ты меняешь значение этой переменной, но не её адрес.
Изменять указатель нужно (хотя может я ошибаюсь). |
18.02.2012, 21:42 | #6 |
Пользователь
Регистрация: 05.02.2012
Сообщений: 17
|
Закрываю тему.
Ошибку свою понял. Просто очень очень сильно перегрелся и элементарные вещи уже не соображал. Совсем забыл что ячейка под память выделяется одна и значение поменяв не изменит номер ячейки. Вообщем заклинило меня сегодня окончательно. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
*указатель = *указатель | tiger() | Общие вопросы C/C++ | 7 | 10.05.2011 12:49 |
указатель на указатель | петя иванов | Общие вопросы C/C++ | 5 | 10.04.2011 02:23 |
Указатель... | Romario92 | Общие вопросы C/C++ | 16 | 22.10.2010 20:37 |
Указатель | RobinVit | Помощь студентам | 3 | 05.05.2010 16:18 |
(!)указатель на указатель(!) | (C)stalin(Cpp) | Общие вопросы C/C++ | 0 | 07.06.2009 15:32 |