变量地址强制转换为int类型的警告


#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,类型不兼容。