![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Black |
|
|||
![]() Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: нет Всего: 45 |
Недавно начал учить C
Не могу понять код:
Все, впринципе, понятно, но то как работает цикл for() с указателями ставит меня в тупик ![]() Объясните, пожалуйста. Это сообщение отредактировал(а) Black - 26.4.2007, 23:43 -------------------- Могу все, но ничего не умею :-) |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
ss=sd=s
эквивалентно sd = s; ss = sd; т. е. инициализируешь ss и sd значением s *sd=*ss - копируешь символ на кот. указывает ss по адресу на кот. указывает sd ss++ - сдвигаешь этот указатель на след символ если *ss не пробел и не табуляция, то сдвигаешь и sd... другими словами, destination(sd) сдвигаешь ток тогда, когда скопирован был не пробел и не табуляция ну а source(ss) сдвигаешь всегда... поскольку строки кончаются нулём - *sd=*ss когда-нибудь вернёт 0 (скопирован 0) и тогда цикл завершится ![]() зы. да уж... жестячок получился... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Black |
|
|||
![]() Web-Development ![]() ![]() Профиль Группа: Участник Сообщений: 980 Регистрация: 15.8.2004 Репутация: нет Всего: 45 |
А как получается, что потом выводят в экран переменную s и она уже без пробелов и знаков табуляции.. хотя в for нет упоминаний о переменной s?
-------------------- Могу все, но ничего не умею :-) |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Black, Почему нет? Мы ею иницилизируем ss и sd.
|
|||
|
||||
BigHeart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 17.3.2007 Репутация: нет Всего: нет |
просто и s и ss и sd это указатели, котоые указывают на одну и ту же область памяти
|
|||
|
||||
Rockie |
|
||||||||||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
Black, есть переменная, которая содержит какое-то значение:
У каждой переменной есть адрес, его можно получить с помощью &:
Указатель - это переменная, содержащая такие адреса. Объявим указатель, содержащий в себе адрес переменной x:
У нас есть указатель, содержащий в себе адрес перемнной x. Мы хотим через этот указатель получить значение переменной x. Для этого применяется *(разыменование указателя):
Ну и в конце концов, у указателя тоже есть адрес:
Тогда получаем:
Это сообщение отредактировал(а) Rockie - 28.4.2007, 17:08 -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
||||||||||||
|
|||||||||||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |