Можно ли использовать разыменование только один раз, чтобы получить значение в 2-м массиве? - PullRequest
0 голосов
/ 30 сентября 2019

Я знаю, что иногда matrix[x][y] (x, y оба даны) можно заменить на *(*(matrix+x)+y). Но можем ли мы использовать разыменование только один раз, чтобы получить специально назначенное (например, matrix[2][3]) значение?

#include<stdio.h>
int main()
{
    int matrix[3][4]={
        {1,2,3,4},{5,6,7,8},
        {9,10,11,12}};
    printf("%d\n",matrix[2][3]);
    printf("%d",*(matrix+2*4+3));
    return 0;
}

Вывод:

12
6422400

1 Ответ

0 голосов
/ 30 сентября 2019

Если у вас есть динамический массив - нет, потому что данные представлены в другой части вашей памяти. Если ваши данные идут побайтно - да - вы можете получить их по

*(matrix + 2*y + 3) == matrix[2][3]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...