#include
int main()
{
int i;
int p;
p = (int)&i;
printf("p=%p\n",p);
printf("&i=%p\n",&i);
return 0;
}
[Warning] cast from pointer to integer of different size [-Wpointer-to-int-cast
这个警告是为什么呢?
指针转换为int,编译器警告而已。你如果确定是要转换成int,那就不用管。
i和p都是int类型的变量,&i就是地址了,将地址赋给整形变量p,类型不兼容。