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

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

Войти
Регистрация
Восстановить пароль
 
Zidane Tribal
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 5
#1

Разница между объявлениями указателей - C++

12.12.2013, 18:56. Просмотров 327. Ответов 8
Метки нет (Все метки)

Есть такое:
C++
1
int *p;
и такое:
C++
1
int *p = new int;
Поясните, пожалуйста, в чём разница между этими объявлениями указателей?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1634 / 1262 / 128
Регистрация: 21.12.2010
Сообщений: 1,924
Записей в блоге: 7
12.12.2013, 19:10     Разница между объявлениями указателей #2
В первом случае указатель надо приравнять нулю чтобы не указывал неизвестно куда
castaway
Эксперт С++
4876 / 3015 / 370
Регистрация: 10.11.2010
Сообщений: 11,075
Записей в блоге: 10
Завершенные тесты: 1
12.12.2013, 19:18     Разница между объявлениями указателей #3
1. Не инициализированный указатель.
2. Указатель, инициализированный выделенной областью памяти под значение типа int
Bino321
2 / 2 / 0
Регистрация: 22.11.2013
Сообщений: 31
12.12.2013, 19:21     Разница между объявлениями указателей #4
Во втором случае указатель указывает на только что созданную интовую переменную. А в первом - создан просто сам указатель... Типа как по аналогии
1)int a;
2)int a=1;
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,946
Записей в блоге: 2
Завершенные тесты: 1
12.12.2013, 19:53     Разница между объявлениями указателей #5
Цитата Сообщение от castaway Посмотреть сообщение
1. Не инициализированный указатель.
Если глобальная переменная, то инициализируется нулем.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
12.12.2013, 19:56     Разница между объявлениями указателей #6
Цитата Сообщение от Zidane Tribal Посмотреть сообщение
int *p = new int;
два в одном. объявление + инициализация
ElenaBilyk
4 / 4 / 1
Регистрация: 22.10.2013
Сообщений: 34
12.12.2013, 19:58     Разница между объявлениями указателей #7
Цитата Сообщение от Zidane Tribal Посмотреть сообщение
Есть такое:
C++
1
int *p;
и такое:
C++
1
int *p = new int;
Поясните, пожалуйста, в чём разница между этими объявлениями указателей?
Первый указатель - это указатель, которому потом нужно будет присвоить память, то, на что он указывает.
Пока этого не сделаешь, работать с ним нельзя. Ему можно дать адрес любого int или выделить под него память new.
Второй указатель уже поставлен на адрес памяти в куче, с ним уже можно работать, давать какое-то значение, выводить на экран...Но не забудь, что потом память нужно будет освободить)))))
castaway
Эксперт С++
4876 / 3015 / 370
Регистрация: 10.11.2010
Сообщений: 11,075
Записей в блоге: 10
Завершенные тесты: 1
12.12.2013, 21:58     Разница между объявлениями указателей #8
Croessmah, сильно сомневаюсь.

Добавлено через 13 минут
...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 22:34     Разница между объявлениями указателей
Еще ссылки по теме:

C++ Указатели на массивы: В чем принципиальное различие между объявлениями указателей?
C++ Какая разница между разными объявлениями объектов?
C++ Разница между DEV и VS
Разница между алгоритмами сортировки C++
Объяснить разницу между объявлениями массивов C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,946
Записей в блоге: 2
Завершенные тесты: 1
12.12.2013, 22:34     Разница между объявлениями указателей #9
Цитата Сообщение от castaway Посмотреть сообщение
Croessmah, сильно сомневаюсь.
Цитата Сообщение от 3.6.2.2
Variables with static storage duration (3.7.1) or thread storage duration (3.7.2) shall be zero-initialized (8.5) before any other initialization takes place.
указатель это скалярный тип
Цитата Сообщение от 8.5.5
To zero-initialize an object or reference of type T means:
— if T is a scalar type (3.9), the object is set to the value 0 (zero), taken as an integral constant expression, converted to T;
Yandex
Объявления
12.12.2013, 22:34     Разница между объявлениями указателей
Ответ Создать тему
Опции темы

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