У меня возникают проблемы с указателями и массивами в C. Здесь код:
#include<stdio.h>
int *ap;
int a[5]={41,42,43,44,45};
int x;
int main()
{
ap = a[4];
x = *ap;
printf("%d",x);
return 0;
}
Когда я компилирую и запускаю код, я получаю это предупреждение:
[Предупреждение] присваивание делает указатель из целого без литья [включено по умолчанию]
Для строки номер 9 (ap = a [4];) и сбой терминала. Если я изменю строку 9, чтобы не включать позицию (ap = a;), я не получаю никаких предупреждений, и она работает. Почему это происходит? Я чувствую, что ответ очевиден, но я просто не вижу его.