Когда printf - это адрес переменной, зачем использовать пустоту *?

Я видел некоторое использование (void *) в printf () .

Если я хочу распечатать адрес переменной, могу ли я сделать это так:

int a = 19;
printf("%d", &a);
  1. Я думаю, & A - это A адрес, который является просто целым числом, верно ?
  2. Многие статьи, которые я читаю использовать что-то вроде этого:

     Printf («% p», (void *) & a);
     

  1. Что делает % P ? (Указатель?)
  2. Зачем использовать (void *) ? Разве я не могу использовать (INT) и A вместо этого?
11
задан Mateen Ulhaq 4 September 2011 в 18:54
поделиться