char greeting[] = "Hello"; char* p = greeting; //non-const pointer, non-const data constchar* p = greeting; //non-const pointer, const data char* const p = greeting; //const pointer, non-const data constchar* const p = greeting; //const pointer, const data
C++ 程序设计的惯例并非一成不变,而是取决于你使用 C++ 语言的哪一部分。例如, 在基于C语言的程序设计中,基本类型传参时传值比传引用更有效率。 然而当你接触 Object-Oriented C++ 时会发现,传常量指针是更好的选择。运用Template C++时尤其如此,因为彼时你甚至不知道所处理的对象的类型。 但是你如果又碰到了STL,其中的迭代器和函数对象都是基于C语言的指针而设计的, 这时又回到了原来的规则:传值比传引用更好。