Рассмотрим следующую программу:
#include<stdio.h>
int main()
{
int marks[]={20,65,45,68,89};
int *x,*y;
x=&marks[2];
y=&marks[4];
printf("%p\n%p\n"x,y);
printf("%p\n%p\n",y-x,*y-*x);
return 0;
}
Когда я хочу распечатать значение y-x
, консоль должна дать мне вывод, равный разнице между адресами соответствующих указателей.В конце концов, мы знаем, что x
и y
имеют адреса («некоторое целое значение»).Однако это не так.Почему?