Увеличить значение указателя int - не работает - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь напечатать массив int, но он выдает ошибку.

ошибка: в качестве операнда приращения требуется lvalue

int *a[] = {1,2,3,4,5};
for(int i=0;i<5;i++)
{
    printf("%d",*a);
    a++;
}

1 Ответ

4 голосов
/ 19 мая 2019

int *a[] означает массив указателей на целые числа. Здесь вам нужен массив целых чисел, поэтому используйте int a[].

Вы не можете увеличить a, потому что a - это массив, а не указатель. Массивы иногда затухают до указателей на первый элемент, но вы не можете изменить этот указатель. Вместо этого создайте указатель, указывающий на элементы в массиве, например int *p = a, или используйте оператор индекса, например a[i], для доступа к элементам.

...