美文网首页
指针与const

指针与const

作者: devilisdevil | 来源:发表于2021-02-23 13:01 被阅读0次
  • 普通非指针变量与const的情况
const int a = 3;
a = 4; // 错误,a初始化后不能再重新赋值
  • 指针变量指向的内容不能被修改
    这是比较常见的情况,就是在指针类型前或者后面加上const,比如对于int型指针,就在int前面或者后面加上const
const int *p;
// int const *p; // 在int前后紧跟const,这表示p指向的那个int型数据不能改变,但是p本身的指向是可以变的
p = &y; // 正确,改变指针指向没问题
*p = 3; // 错误,改变指针指向的内容不行
  • 指针变量不能重新赋值
    把const紧放在变量前面,*后面
int * const p = &x; // 初始化后就不能再重新赋值了
*p = 3; // 正确,还是可以通过p改变其指向的int型变量
p = &y; // 错误,和上面的普通非指针变量a类似
  • 指针的指针的指针...

请直接看总结

总结

其实不用整得这么乱七八糟的,就一点,const如果放到最前面,比如const int ***a,那么表示a[0][0][0]const int类型,不能改变的数据是int类型(可以看成是const和后面的int结合到一起,但不会继续向后面和*结合),所以如果要表示int*不可以更改,那么把这个声明该成const放到中间的方式,const左边表示的类型是不能修改的:int * const **a表示a[0][0]int *const类型,是不能修改的,但是a[0][0][0]的类型是int,它是可以修改的

如果进一步要让a[0][0][0]也不能修改,那把声明改成const int * const **a或者int const * const **a (前面说过,const写到最前面就紧和后面的int结合到一起,表示int const类型,int数据不能被改变)

有的时候把多层指针写成数组的形式,其实都差不多,还是看const左边是啥类型,比如const int a[][][]或者int const a[][][]表示a[0][0][0]const int类型,不能改变int型数据,int *const a[][]表示a[0][0]int *const类型,指向的int*不能修改,但是a[0][0][0]这个int型数据是可以修改的。

最后,对于指针变量是const的情况,定义时需要给这个指针初始化,因为后面不能再修改指向了,比如int *const p = &x;这里定义时初始化是必须的不能写成int *const p; p = &x;这样两句。

相关文章

  • 2018-12-03

    const 与 多重指针 先让我们来看const与指针的情况 然而,当const碰到多重指针的时候,情况就会变得复...

  • C++ decltype 与 auto关键字

    顶层const 与 底层const 指针本身是不是常量 和 指针所指的是不是一个常量 是2个问题。顶层const ...

  • c++ 指针和引用的区别

    1. 指针有const,引用没有const 1)为了限制指针更改指向,引入了const指针(int* const ...

  • C语言-const指针

    const 指针 在普通指针类型前面,加上const修饰 例如: const 指针:区别 加不加const,有什么...

  • const、模板、注释、inline

    1、const:类型常量与指针常量 const int 等价于 int const 但不等价于int *const...

  • const与指针

    1.const修饰普通变量 int const a = 10; //与const int a = 10; 是等价的...

  • 指针与const

    普通非指针变量与const的情况 指针变量指向的内容不能被修改这是比较常见的情况,就是在指针类型前或者后面加上co...

  • 5.const与指针

    1.const修饰指针-常量指针 2.const修饰常量-指针常量 3.const修饰指针和常量 代码如下

  • Const关键字理解(iOS)

    基本数据类型 const 在基本数据类型中的用法 指针类型 指针 的简单用法 const 与 指针 的结合使用 注...

  • const指针

    const指针可以指向非const变量, 非const指针不能指向const变量 int (*p)[5] 指向...

网友评论

      本文标题:指针与const

      本文链接:https://www.haomeiwen.com/subject/oyerfltx.html