C++技巧(使用带有指针的const的注意事项)

C++技巧(使用带有指针的const的注意事项),第1张

C++技巧(使用带有指针的const的注意事项),第2张

当使用带有指针的const是,有两种选择:const修饰指针正指向的对象,或者const修饰在指针里存储的地址。这些语法容易使人混淆,但实践之后就好了。
  1.指向const的指针
  const int* u;
  u是一个指针,它指向一个const int,这里不需要初始化,因为u可以指向任何标识符(也就是说,它不是一个const),但它所指的值是不能被改变的。
  对于
  int const* u;
  其效果与上面的定义完全一样,u是一个指向恰好是const的int的普通指针。但第一种可读性更强。
  2.const指针
  使指针本身成为一个const指针,必须把const标明的部分放在*的右边,如:
  int d = 1;
  int* const w = &d;
  w是一个指针,这个指针是指向int的const指针。因为指针本身现在是const指针,考试,大提示编译器要求给它一个初始值,这个值在指针生命期内不变。然而要改变它所指向的值是可以的,可以写
  *w = 2;
  可以使用下面两种合法形式中的任何一种把一个const指针指向一个const对象:
  int d = 1;
  const int* const x = &d;
  int const* const x = &d;
  现在,指针和对象都不能改变。
  测试一下:
  #include
  using namespace std;
  int main()
  {
  int a = 1;
  int b = 2;
  const int* u;
  u = &a;
  //*u = 4; //非法
  cout

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++技巧(使用带有指针的const的注意事项)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情