Задать вопрос
trinitr0
@trinitr0
провинциальный админ

Какое значение получается после разименования указателя?

Объясните пожалуйста как разименовывается указатель
в строке
*(ptr+i*B+j)

в таком коде
int DIM[A][B];
	int *ptr = (int *) DIM;
	for (int i=0; i<A; i++)
		{
			for (int j=0; j<B; j++)
			{
				cout << setw(4) << *(ptr+i*B+j) << endl;
			}
			cout << endl;
		}
  • Вопрос задан
  • 156 просмотров
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для указателей (тип *) прибавление/вычитание целого числа сдвигает указатель вперёд/назад на размер элемента sizeof(тип).
int A[3];
int *ptr = A; // ptr указывает на A[0]
ptr += 2; // ptr указывает на A[2]
ptr --; // ptr указывает на A[1]
ptr = ptr+10; // ptr указывает за пределы массива A
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DIM[i][j]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы