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

Сравнение с 0 через указатель *char - C++

Восстановить пароль Регистрация
 
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
19.05.2013, 16:46     Сравнение с 0 через указатель *char #1
wr указатель char. вот так сравниваю с пробелом все работает
C++
1
*wr!= ' ';
вот так сравниваю с 0 ошибка программы( не видит нули)
C++
1
*wr!= 0;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 16:46     Сравнение с 0 через указатель *char
Посмотрите здесь:

C++ Указатель на массив char и прочее
Указатель char* C++
Указатель на char C++
C++ Указатель на поле типа char []
Указатель на массив char C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LiquidSnake
55 / 55 / 1
Регистрация: 06.02.2013
Сообщений: 315
19.05.2013, 16:53     Сравнение с 0 через указатель *char #2
в смысле ошибка компилятора? Или что?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
19.05.2013, 17:48     Сравнение с 0 через указатель *char #3
Символ нуля имеет ненулевой код, сравнивайте с '0'.
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
19.05.2013, 20:21  [ТС]     Сравнение с 0 через указатель *char #4
ошибка программы (пролетает в несовой участок памяти).

Добавлено через 1 час 32 минуты
NoMasters, так не работает
C++ (Qt)
1
*wr!= '0';
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 20:37     Сравнение с 0 через указатель *char #5
Что значит "не работает"? Дай код, опиши условие задачи!
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
19.05.2013, 23:06  [ТС]     Сравнение с 0 через указатель *char #6
C++ (Qt)
1
2
for(; *wr!='00'; wr--)
{}
ищем символ '0'. указатель должен быть на нем там, точно есть нули, я дамп памяти смотрел. он бежит дальше.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.05.2013, 23:35     Сравнение с 0 через указатель *char #7
Цитата Сообщение от korez Посмотреть сообщение
*wr!='00'
Почему Вы берете два нуля?
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
19.05.2013, 23:37     Сравнение с 0 через указатель *char #8
Цитата Сообщение от korez Посмотреть сообщение
'00'
Такая запись вообще не должна компилироваться.
daslex
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
20.05.2013, 01:05     Сравнение с 0 через указатель *char #9
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cmath>
#include <iomanip>
#include <iostream>
 
 
int main()
{
    char ch=' ';
    char *wr=&ch;
 
    for(; *wr!='0'; wr--)   std::cout<<*wr<<"\n"; //for(; *wr!=0; wr--)
    
    std::cin.get();
    return 0;
}

Цикл работает и останавливается, значит программа работает и видит и 0 и '0'

Цитата Сообщение от korez Посмотреть сообщение
в несовой участок памят
вот этого вообще не понял. Куда вы написали, туда и пролетает

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <cmath>
#include <iomanip>
#include <iostream>
 
 
int main()
{
    char ch=0; //Если код символа ноль
    char *wr=&ch;
 
    for(; *wr!=0; wr--) std::cout<<*wr<<"\n"; //и сравниваем с нулем, то до нуля и работает
    
    std::cin.get();
    return 0;
}
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
20.05.2013, 01:10     Сравнение с 0 через указатель *char #10
Цитата Сообщение от NoMasters Посмотреть сообщение
Символ нуля имеет ненулевой код, сравнивайте с '0'.
от тебя не ожидал. Может ты тоже употребляешь как и я...
Никого не смущает нуль терминант? мы же просто перепрыгиваем стек.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
20.05.2013, 01:40     Сравнение с 0 через указатель *char #11
Цитата Сообщение от lazybiz Посмотреть сообщение
Такая запись вообще не должна компилироваться.
Должна и поэтому компилируется. Это ж "multicharacter literal". Другое дело, что такая запись не должна использоваться.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
20.05.2013, 02:18     Сравнение с 0 через указатель *char #12
ТС, развивай свой интерес. Ты на верном пути.
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
20.05.2013, 19:54  [ТС]     Сравнение с 0 через указатель *char #13
нет просто здесь опечатался, на самом деле использовал '0'.

Добавлено через 1 час 15 минут
все заработало вот так
C++
1
2
for(; *wr!=0; wr--)//.
{}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2013, 22:43     Сравнение с 0 через указатель *char
Еще ссылки по теме:

Указатель на двумерный массив char С.Прата C++
array char* to char* (значения массива указателей в один указатель) C++
Сохранение/Загрузка указателя на указатель типа char C++

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.05.2013, 22:43     Сравнение с 0 через указатель *char #14
Цитата Сообщение от korez Посмотреть сообщение
все заработало вот так
Вы представляете, что это означает?
Yandex
Объявления
20.05.2013, 22:43     Сравнение с 0 через указатель *char
Ответ Создать тему
Опции темы

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