无论是C还是C ++标准都没有说明 sizeof 不同指针的需要是相同的。
sizeof
这是为了使C特别是最大化其普遍性。例如,架构可能有一个离CPU浮点处理器,所以也许 sizeof(double*) 与a不同 sizeof(char*) 。
sizeof(double*)
sizeof(char*)
指针算法在C和C ++中都有必要使用指针中的类型信息(指针算法本质上是编译时可评估的,因此语言不能求助于运行时类型信息)。该 static_cast C ++的类似编译时可评估。
static_cast
因此类型 不 事,所以 ptr *value; 只有这样才有意义 ptr 是一种类型。
ptr *value;
ptr
能说出你对内心的期望。它指向内存的类型部分。
否则,指针上的所有操作(不是地址本身)都只是盲目跟踪引线。