c,const和指针组合的几种意义

时间:2023-03-09 02:05:19
c,const和指针组合的几种意义

const和指针的组合:

注释部分表示非法。

    int a =;

    const int *p = ;
p=&a;
//*p = 1 ; int const *pp = ;
pp= &a;
//*pp = 1; int* const pv = ;
//pv=&a;
*pv = ; const int const *pavp = ;
//pavp = &a;
//*pavp = 1; const int *const pbvp = ;
//pbvp = &a;
//*pbvp = 1; int const* const pcvp = ;
//pcvp = &a;
//*pcvp = 1;

下面的代码可道出一个关键:因为C / C++里面没有const*的运算符,所以const只能属于前面的类型。

    int a =;
typedef int* int_ptr; const int_ptr p=;
//p=&a;
*p = ; int_ptr const pa=;
//pa=&a;
*p = ;

const放在最前时,只能选择向右结合。

  const int *p   就表示int是不变的, *p  is a const 。

  int* const p  就表示指针p不能更改,但其 *p则是可变的。