为什么我们需要使用(void*)&a而不是&a

Xin*_*ang 2 c

int main()
{
  int a;
  int* b;
  a = 40;
  b = &a;
  printf("the address of a is %p, and the value of a is %d \n",&a, a);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我发现,无论(void*)&a&a打印相同的事情.那么人们为什么还要加(void*)?这只是一种习惯吗?

ame*_*yCU 5

您使用说明符%p来打印存储在指针中的地址,此格式说明符需要类型void *.而作为&a是类型int *,投void *用.