Adressing operator inside the printf changes the address of the function pointer from a regular adress to 0x1000. Why this happens and what does it mean ?
#include <stdio.h>
int main()
{
int (*fp) (int);
printf("%p\n", (fp));
printf("%p", (fp));
}
When I run this I get
0x560cb44ce060 0x560cb44ce060
as expected but when ı run this
#include <stdio.h>
int main()
{
int (*fp) (int);
printf("%p\n", (fp));
printf("%p", &(fp));
}
ı get
0x1000 0x7ffcc92c8990
I really can not figured out what does change when I add &
operator at the last line.