Доброго времени суток...
void main()
{
int a,b,c;
int *A, *B;
a = 3;
b = 5;
A = &a;
B = &b;
c = (A - B);// ???
printf("c=%d\n", c );//Vs 2015 выдает 3...Почему?
printf("num1 = %d num2 = %d\n", *(B + c), *(A - c));
}
я не понимаю это действие, а точнее, ведь это вычитание адресов и разность возвращается в int? Но ведь они не обязаны находится рядом, тогда вообще не понимаю откуда берется число 3...?
3 * sizeof(int)в данном случае. – insolor Feb 19 '18 at 20:32uintptr_t, илиsize_t. Нужно будет подключить stdint.hc = (int)((uintptr_t)A - (uintptr_t)B);//– kisssko Feb 20 '18 at 00:01