const .... * 被指物是常量 const Widget* p = Widget const * p
... * const ...指针是常量 Widget* const p
const ... * const ...都是常量
对于stl:
std::vector<int> vec;
const std::vector<int>::iterator iter1 = vec.begin();
std::vector<int>::const_iterator iter2 = vec.begin();
iter1 对应上述指针常量
iter2 对应上述被指物是常量
*iter1 = 10; // ok
++iter1; // err
*iter2 = 10; // err
++iter2; // ok
对于函数:
待续。