#include <stdio.h>
#include <stdlib.h>
int main() {
char far* ptr; // note that this is a far pointer
printf( "%d\n", sizeof( ptr));
return EXIT_SUCCESS;
}
struct A {};
struct B : virtual public A {};
struct C {};
struct D : public A, public C {};
int main()
{
cout << "A:" << sizeof(void (A::*)()) << endl;
cout << "B:" << sizeof(void (B::*)()) << endl;
cout << "D:" << sizeof(void (D::*)()) << endl;
}
指针的大小基本上取决于实现它的系统的体系结构。例如,在64位计算机中,32位指针的大小为4字节(32位)和8字节(64位)。机器中的位类型只是内存地址,它可以有。32位机器可以有2^32地址空间,64位机器可以有最多2^64地址空间。因此,指针(指向内存位置的变量)应该能够指向机器持有的任何内存地址(2^32 for 32 bit and 2^64 for 64 bit)。