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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Altair42
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 324
#1

Логический оператор AND - C++

24.05.2014, 11:16. Просмотров 237. Ответов 3
Метки нет (Все метки)

Помогите понят что делает этот код и как.
C++
1
2
char *cp="Hello World!";
while(cp && *cp)
Я не могу понят первая строка указатель или массив. Если это массив то где фигурные скобки, или оператор new. В любом случае *cp указывает на "Hello World!". Тогда что делает цикл while? cp или *cp не может быт false ибо один инициализиован как строка другой адрес. Если я рассуждаю верно то цикл while теряет свою значимость ( он не чего не делает.) Но я могу ошибаться ( по моему я не прав с большой вероятностью)

Добавлено через 1 минуту
Вообще что означает cp && *cp?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2014, 11:16     Логический оператор AND
Посмотрите здесь:

Логический оператор or - C++
Мне, правда, очень стыдно :) но я не понимаю, как правильно прописать следующее: cin >> n; if (n != (1|5|25)){ cout << "\n bla...

Логический оператор ИЛИ - C++
Всем привет,на днях преподаватель задал интересный вопрос: "Почему в С++ для оператора ИЛИ используют "|| ",а не "|"...

Логический калькулятор - C++
Написал калькулятор логических выражений, но не могу добавить функцию приоритета, со скобками все работает замечательно, но без них...

Логический драйвер - C++
Здравствуйте! В графической программе есть оператор initgraph, в атрибутах которого нужно указать путь к файлу, содержащему логический...

Логический тип - C++
Дано положительное целое число n. Верно ли, что все его цифры нечётные? Условных операторов не использовать!

Логический калькулятор - C++
Написал логический калькулятор, вроде всё правильно работает, но сайт на который я его отправляю не принимает его. Подскажите пожалуйста...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
24.05.2014, 11:20     Логический оператор AND #2
проверили указатель cp на 0 и символ на '\0'
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
24.05.2014, 11:32     Логический оператор AND #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Altair42 Посмотреть сообщение
Я не могу понят первая строка указатель или массив. Если это массив то где фигурные скобки, или оператор new.
это указатель на строковый литерал. То есть на константную строку, которая заранее загружена куда-то в память, не мы её выделяли, мы её даже изменить не можем, только "указать" на неё указателем и читать.
Цитата Сообщение от Altair42 Посмотреть сообщение
Тогда что делает цикл while? cp или *cp не может быт false ибо один инициализиован как строка другой адрес.
в языке С++ условие это не только true или false. Это любое выражение. Условие выполняется, если выражение принимает любое ненулевое значение. В данном случае, условие цикла это то, чтобы И сам указатель не был нулевым И на нулевой символ в строке не указывал.
Цитата Сообщение от Altair42 Посмотреть сообщение
while теряет свою значимость ( он не чего не делает.)
ничего...
нет, очевидно, внутри цикла указатель увеличивается на одну позицию за каждый проход, таким образом указатель указывает в цикле по очереди на все символы строки от первого до последнего. А последний символ в строке - нулевой. для этого и условие.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2014, 11:33     Логический оператор AND
Еще ссылки по теме:

Логический калькулятор - C++
Помогите пожалуйста разобраться в чём проблема. Необходимо написать программу, выполняющую сравнение двух целых чисел, не превышающих по...

Логический сдвиг влево - C++
unsigned __int64 number = 239176053778592; ClongNumber c(number); c.print(); for(int i = 0; i < 18; i++) { unsigned...

Логический калькулятор на 6 операций - C++
Написал логический калькулятор на 6 операций. Вроде всё правильно работает, но сайт, на который я его отправляю не принимает его....

Логический элемент «2-2И-2ИЛИ-НЕ» - C++
Помогите с разработкой класса логического элемента «2-2И-2ИЛИ-НЕ»...буду рад за любую информацию!!!


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2014, 11:33     Логический оператор AND #4
Цитата Сообщение от Altair42 Посмотреть сообщение
Если я рассуждаю верно то цикл while теряет свою значимость
А где там сам цикл? Видно только условие цикла, поэтому о чём можно рассуждать?
Yandex
Объявления
24.05.2014, 11:33     Логический оператор AND
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru