【发布时间】:2011-10-08 18:25:28
【问题描述】:
指针的大小是否与其指向的类型的大小相同,还是指针总是具有固定大小?比如……
int x = 10;
int * xPtr = &x;
char y = 'a';
char * yPtr = &y;
std::cout << sizeof(x) << "\n";
std::cout << sizeof(xPtr) << "\n";
std::cout << sizeof(y) << "\n";
std::cout << sizeof(yPtr) << "\n";
这个输出会是什么? sizeof(xPtr) 会返回 4,sizeof(yPtr) 会返回 1,还是这 2 个指针实际上会返回相同的大小?我问这个的原因是因为指针存储的是内存地址,而不是它们各自存储地址的值。
【问题讨论】: