A. the encoded identifiers are:
000000000040055b T main
000000000040052d T _Z7averageiRf
00000000004004ed T _Z7averagePdRd
B.
Because the meaning of a pointer is to read the memory address in the computer, and the type decides the way to read it.
Actually the pointer stores only the memory address, it will depends on the computer's system. In generall, it will use 8
byte to store the memory address because 8 byte is equal to 32 bit,the magnitude of 2^32 = 4294967296 as many as a memory
address of a pointer stored in a computer that contain 4GB of memory capacity.