Я изучаю C, и я видел этот код, но я не могу понять разницу. Может кто-нибудь объяснить это, пожалуйста? Спасибо.
#include <stdio.h>
int main(int argc, char const *argv[])
{
int addressAsInt = 0x61FF08;
printf("address = %p\n", addressAsInt);
int address2AsInt = 0x61FF14;
printf("address2 = %p\n", address2AsInt);
printf("rest = %d\n", address2AsInt - addressAsInt);
int* address = (int*) 0x61FF08;
printf("address = %p\n", address);
int* address2 = (int*) 0x61FF14;
printf("address2 = %p\n", address2);
printf("rest = %d\n", address2 - address);
return 0;
}
Первая разница выводит 0000000C, а вторая 00000003.
Я понимаю первое, но не второе.