-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
|
|||||||||||
1 | |||||||||||
Определение указателя02.01.2019, 13:28. Показов 685. Ответов 6
Метки нет (Все метки)
main.cpp:7:13: warning: 'p' is used uninitialized in this function [-Wuninitialized] cout << p; ^ А этот код компилируется без ошибок и предупреждений:
Верно ли я понимаю, что всякое объявление указателя является определением без инициализации: память выделяется, но никакого значения в эту память не записывается?
0
|
02.01.2019, 13:28 | |
Ответы с готовыми решениями:
6
Почему увеличение указателя на sizeof(тип) не тождественно инкременту этого же указателя? Создание указателя на экземпляр класса, описанного после объявления указателя Преобразование кода без указателя в код с использованием указателя Как сделать функцию от указателя на класс и указателя на метод? |
2128 / 1211 / 503
Регистрация: 11.10.2018
Сообщений: 6,107
|
|
02.01.2019, 13:45 | 2 |
Думаю, да. Память выделяется, но в ней находится непонятно что. Поэтому он и ругается.
Добавлено через 2 минуты cpp.sh инициализирует его 0.
0
|
900 / 477 / 93
Регистрация: 10.06.2014
Сообщений: 2,698
|
|
02.01.2019, 14:02 | 3 |
Память выделяется под сам указатель, но каким именно будет адрес в указателе - не определено. То есть явно мы туда адрес не записывали, но переменная (указатель) сидит в памяти. То место в памяти которое выделено под хранение адреса имело какое то значение, вот это самое значение при печати и видно.
А то что код компилируется это ещё не все. Есть такая штука как неопределенное поведение.
0
|
"C with Classes"
|
||||||
02.01.2019, 14:39 | 4 | |||||
Jzx, ты в своем коде определил переменную на стеке типа указатель на тип int, у этой переменной как и у любой
другой есть адрес.
0
|
-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
|
|
02.01.2019, 14:50 [ТС] | 5 |
Это понятно.
И это понятно.
И это тоже.
Я хотел узнать о терминах, о той терминологии, которая применима в данной ситуации. Потому что в стандарте языка мне не удалось найти никакой информации о том, что считается объявлением, определением и инициализацией указателя.
0
|
2128 / 1211 / 503
Регистрация: 11.10.2018
Сообщений: 6,107
|
|
02.01.2019, 15:05 | 6 |
Объявление - это как-бы краткая запись, само объявление, маркировка.
Определение - это само описание(для функции), само тело функции. Инициализация - задание начального значения переменной, как правило делается вначале программы. Сделайте одолжение. Не говорите больше что Вам тут все понятно - я считаю это плохой тон. Если бы Вам было все понятно - Вы бы сюда не пришли.
0
|
-47 / 3 / 0
Регистрация: 31.12.2017
Сообщений: 204
|
||||||
02.01.2019, 16:04 [ТС] | 7 | |||||
Обнаружил интересную информацию:
В стандарте языка C сообщается следующее:
0
|
02.01.2019, 16:04 | |
02.01.2019, 16:04 | |
Помогаю со студенческими работами здесь
7
В чём отличие константного указателя и указателя на константу? Возвращение неконстантного указателя из константного указателя на строку Написать обработчик исключений ситуации при преобразовании указателя на класс B до указателя на абстрактный класс А ... Перезаписать память начиная с указателя Bitmap[1] элементами начиная с указателя Bitmap[0] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |