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

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

Восстановить пароль Регистрация
 
Zidane Tribal
0 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 5
12.12.2013, 18:56     Разница между объявлениями указателей #1
Есть такое:
C++
1
int *p;
и такое:
C++
1
int *p = new int;
Поясните, пожалуйста, в чём разница между этими объявлениями указателей?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2013, 18:56     Разница между объявлениями указателей
Посмотрите здесь:

Разница между i++ и ++i.Си C++
C++ Разница между 0 и 00 ?
C++ Разница между != и <=
C++ Разница между С и С++
C++ Разница между объявлениями const Person p1 и Person const p1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
12.12.2013, 19:10     Разница между объявлениями указателей #2
В первом случае указатель надо приравнять нулю чтобы не указывал неизвестно куда
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 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
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 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
 Аватар для 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
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 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++ Какая разница между разными объявлениями объектов?

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11816 / 6795 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 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     Разница между объявлениями указателей
Ответ Создать тему
Опции темы

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