Форум программистов, компьютерный форум CyberForum.ru

Разобрать синтаксис цикла - C++

Восстановить пароль Регистрация
 
Tzavr
-13 / 0 / 1
Регистрация: 08.03.2014
Сообщений: 16
19.03.2014, 18:35     Разобрать синтаксис цикла #1
не пойму цикл:
C++
1
for(i=0;s[i];i++)
точнее не пойму,что означает s[i]?это s[i]!='/0'?
if(!(*str))- да и что это за условие?str==0 или str!=0?
пожалуйста помогите,
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2014, 18:35     Разобрать синтаксис цикла
Посмотрите здесь:

C++ Синтаксис
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. C++
Синтаксис C++
вывод на экран чисел 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12, с использованием одного цикла и что бы все printf были только в теле цикла C++
Используя одну переменную цикла укажите возможные способы объявления заголовка счетного цикла. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6428 / 3802 / 882
Регистрация: 30.01.2014
Сообщений: 6,601
19.03.2014, 18:40     Разобрать синтаксис цикла #2
Цитата Сообщение от Tzavr Посмотреть сообщение
,что означает s[i]?это s[i]!='/0'?
Да. Почти. Это bool(s[i]).
Цитата Сообщение от Tzavr Посмотреть сообщение
if(!(*str))- да и что это за условие?
Если в *str - ноль, то условие будет истинным.
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
19.03.2014, 18:42     Разобрать синтаксис цикла #3
Цитата Сообщение от Tzavr Посмотреть сообщение
что означает s[i]?это s[i]!='/0'?
Да, именно так. Проверяется конец строки.
Цитата Сообщение от Tzavr Посмотреть сообщение
if(!(*str))
Совершенно тоже самое. str указывает на нулевой байт
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
19.03.2014, 18:43     Разобрать синтаксис цикла #4
if(!(*str))
Если указатель NULL, то выполняется условие.

for(i=0;s[i];i++)
Странная организация for. Думаю, пока есть s[i] элемент. Если выйдет за пределы массива - цикл завершится.
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
19.03.2014, 18:46     Разобрать синтаксис цикла #5
DrOffset,

Не по теме:

Ну вот, мы с вами мыслим совершенно одинаково. Только вы на 2 минуты быстрей



Добавлено через 1 минуту
Цитата Сообщение от Тамика Посмотреть сообщение
Если указатель не NULL, то выполняется условие.
В этом утверждении 2 ошибки

Добавлено через 39 секунд
Цитата Сообщение от Тамика Посмотреть сообщение
Странная организация for.
Отнюдь. Самая обычная.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
19.03.2014, 18:47     Разобрать синтаксис цикла #6
В этом утверждении 2 ошибки
Я уже поправила.

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
Отнюдь. Самая обычная.
Может. Но почти никогда не видела такое использование.
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
19.03.2014, 18:49     Разобрать синтаксис цикла #7
Цитата Сообщение от Тамика Посмотреть сообщение
Я уже поправила.
Только одну. Вторая осталась. *str - это уже не указатель. Это - элемент массива
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
19.03.2014, 18:51     Разобрать синтаксис цикла #8
Цитата Сообщение от Байт Посмотреть сообщение
*str - это уже не указатель.
Согласна. Но править уже нельзя.

Добавлено через 1 минуту
Хотя ей ничего не мешает быть просто разыменованым указателем.
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
19.03.2014, 18:53     Разобрать синтаксис цикла #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Tzavr, Чтоб не сбивать вас с толку, вот вам 4 эквивалентных организации цикла
C++
1
2
3
4
for(i=0; s[i]!='\0'; i++)
for(i=0; s[i]; i++)
for(str=s ; *str; str++)
for( str=s; *str!=0; str++)
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
19.03.2014, 18:55     Разобрать синтаксис цикла #10
Это понятно.
Но ТС написал
C++
1
if(!(*str))
Я о том, что это может быть и не массив. А просто указатель. Непонятно ведь как оно использовано в коде.
Байт
19.03.2014, 18:55
  #11

Не по теме:

Цитата Сообщение от Тамика Посмотреть сообщение
Но править уже нельзя.
Это не важно. Главное, что мы договорились

Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
19.03.2014, 18:58     Разобрать синтаксис цикла #12
Это не важно. Главное, что мы договорились


Добавлено через 45 секунд
Я ещё во многом плаваю, потому не удивляйтесь глупым вопросам.)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2014, 19:11     Разобрать синтаксис цикла
Еще ссылки по теме:

C++ синтаксис
C++ Ошибка в теле цикла, синтаксис
C++ Нахождение отрицательного цикла в графе и вывод цикла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Байт
19.03.2014, 19:11     Разобрать синтаксис цикла
  #13

Не по теме:

Цитата Сообщение от Тамика Посмотреть сообщение
Я ещё во многом плаваю,
Это ничего. Главное - не переставайте барахтаться.

Yandex
Объявления
19.03.2014, 19:11     Разобрать синтаксис цикла
Ответ Создать тему
Опции темы

Текущее время: 22:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru