假设有一个函数,如:
// Constructed example void foo (float* result, const float* a, const float* b, const size_t size) { for (size_t i = 0; i < size; ++i) { result [i] = a [0] * b [i]; } }
如果编译器必须假设result
可能与a
,每次都要重取一个
指针是const的。不幸的是,编译器仍然不知道结果是否是const指针的别名。始终可以使用非const指针作为常量指针。例如,许多函数将一个const char(即字符串)指针作为参数,但是如果你愿意的话,可以把它传给一个非const指针