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

Почему мы не разыменовываем указатель на элемент массива? - C++

Восстановить пароль Регистрация
 
Deamod1s
 Аватар для Deamod1s
0 / 0 / 0
Регистрация: 28.10.2016
Сообщений: 2
04.11.2016, 15:53     Почему мы не разыменовываем указатель на элемент массива? #1
C++
1
2
3
4
5
6
7
    int *ptrarray = new int [10];
    for (int i = 0; i < 10; i++)
    {
        ptrarray[i] = i;
        cout << ptrarray[i] << " ";
    }
    delete[] ptrarray;
Почему не правильна инструкция
C++
1
*ptrarray[i] = i;
Ведь чтобы "кинуть" какое-то значение в ячейку динам.памяти,которая находится по адресу,на который ссылается указатель,нужно его сначала разыменовать.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2016, 15:53     Почему мы не разыменовываем указатель на элемент массива?
Посмотрите здесь:

Может ли указатель показывать на последний элемент массива, а не на первый? C++
Функция должна возвращать указатель на первый элемент массива,удовлетворяющий условию C++
C++ Как передвигать указатель на следующий элемент массива структур?
Вывести минимальный элемент введенного с клавиатуры массива целых чисел (через указатель) C++
Элемент массива внезапно меняет свое значение, почему? C++
C++ Найти максимальный элемент массива: неправильный результат, почему?
Заставить указатель указывать на нулевой элемент массива C++
Создать указатель на элемент массива C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
04.11.2016, 16:00     Почему мы не разыменовываем указатель на элемент массива? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Deamod1s Посмотреть сообщение
нужно его сначала разыменовать.
выражение ptr[i] преобразовывается в *(ptr+i).
DevAlone
71 / 71 / 21
Регистрация: 02.08.2016
Сообщений: 298
Завершенные тесты: 2
04.11.2016, 16:02     Почему мы не разыменовываем указатель на элемент массива? #3
потому что [] его уже разыменовывают, это всё равно что написать *(ptrarray+i)

Добавлено через 59 секунд
а если вы напишете *ptrarray[i] = i; будет **(ptrarray+i) и компилятор укажет на ошибку
Yandex
Объявления
04.11.2016, 16:02     Почему мы не разыменовываем указатель на элемент массива?
Ответ Создать тему
Опции темы

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