Answer to Question memory-4

No. Variable r has type long. Variable p has type long*. No implicit conversion is ever done from long to long*, or from any numeric type to any pointer type. You are allowed to write
  long r = 0;
  long* p = &r;