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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.76
Rengen
3 / 3 / 0
Регистрация: 15.01.2012
Сообщений: 67
#1

Что использовать с указателями? 0, NULL, nullptr? - C++

16.08.2012, 21:50. Просмотров 12103. Ответов 29
Метки нет (Все метки)

NULL в WinDef.h описан как #define NULL 0. То есть в случае использования как с указателями, так и другими переменными разницы 0. Про nullptr только час назад узнал, даёт ли он какие-либо реальные преимущества?

Но, вообщем-то, главный вопрос: что использовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2012, 21:50     Что использовать с указателями? 0, NULL, nullptr?
Посмотрите здесь:

C++ Работа с указателями: подскажите что я не так делаю
C++ nullptr в codeblocks
Union с явными указателями или void*- что выбрать? C++
C++ Не могу что-то понять с указателями
C++ Сделать функцию, которая принимает одномерный массив и возвращает индексы трех его самых больших элементов(сортировку не использовать), указателями
Не могу понять, что означает данная операция с указателями C++
C++ Проверка на nullptr + разыменовывание
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Anuta21
0 / 0 / 0
Регистрация: 22.01.2012
Сообщений: 15
19.08.2012, 17:36     Что использовать с указателями? 0, NULL, nullptr? #21
Не знаю, почему у меня компиль предупреждает, главное чтобы компилировал
В общем 0 - самое надежное, а макросы опасны, особенно если их использует не разработчик, а злоумышленник, который хочет у разработчика что то испортить
как в башорге было с define и true c false
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
19.08.2012, 17:37     Что использовать с указателями? 0, NULL, nullptr? #22
Цитата Сообщение от Anuta21 Посмотреть сообщение
я к тому что, что надежнее не писать NULL, а использовать 0
Надежнее явно преобразовывать к указателю, если вы его неявно подразумеваете. А что вы будете кастовать - NULL или 0 - дело ваше.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
20.08.2012, 12:41     Что использовать с указателями? 0, NULL, nullptr? #23
Вполне безопасно пользоваться 0, как и пишут Дейтелы:
Указатель со значением 0 или NULL ни на что не указывает и называется
нулевым указателем. Символическая константа NULL определяется в
заголовочном файле <iostream> (и некоторых других заголовочных файлах
стандартной библиотеки) и представляет значение 0. Инициализация указателя
константой NULL эквивалентна инициализации значением 0, но в C++
принято инициализировать указатели нулем. Когда присваивается значение 0, оно
преобразуется в указатель соответствующего типа. Нуль — единственное
целое значение, которое можно непосредственно присвоить
переменной-указателю, не приводя предварительно целое к типу указателя.
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.08.2012, 12:51     Что использовать с указателями? 0, NULL, nullptr? #24
Цитата Сообщение от Toshkarik Посмотреть сообщение
Вполне безопасно пользоваться 0, как и пишут Дейтелы:
Какое издание?
Цитата Сообщение от Toshkarik Посмотреть сообщение
Когда присваивается значение 0, оно преобразуется в указатель соответствующего типа.
Когда присваивается указателю - да. Когда речь заходит о шаблонах и перегрузках - нет.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
20.08.2012, 12:57     Что использовать с указателями? 0, NULL, nullptr? #25
Полное 5-е издание.
Цитата Сообщение от soon Посмотреть сообщение
Когда речь заходит о шаблонах и перегрузках - нет.
Пример можно?
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.08.2012, 13:00     Что использовать с указателями? 0, NULL, nullptr? #26
Toshkarik, Пост #3
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,432
20.08.2012, 13:00     Что использовать с указателями? 0, NULL, nullptr? #27
Toshkarik, Что использовать с указателями? 0, NULL, nullptr?
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
20.08.2012, 13:12     Что использовать с указателями? 0, NULL, nullptr? #28
В данном случае, при написании foo( 0 ), компилятор, само собой, выбирает ссылку на константный объект, потому что 0 в первую очередь константа. И тут не вижу ничего не правильного, или опровергающего слова Дейтелов.
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.08.2012, 13:16     Что использовать с указателями? 0, NULL, nullptr? #29
Toshkarik, Я где-то опровергал Дейтелов?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2012, 13:18     Что использовать с указателями? 0, NULL, nullptr?
Еще ссылки по теме:

Что не так при работе с указателями? C++
G++ не распознает nullptr C++
переделать код, что б было с указателями C++
Что не так с этими указателями? C++
C++ Нюансы работы с указателями: объяснить, что происходит в заданном фрагменте кода

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

Или воспользуйтесь поиском по форуму:
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
20.08.2012, 13:18     Что использовать с указателями? 0, NULL, nullptr? #30
Ну, мне так показалось в сообщении #24. Если неправильно понял - извиняйте
Yandex
Объявления
20.08.2012, 13:18     Что использовать с указателями? 0, NULL, nullptr?
Ответ Создать тему
Опции темы

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