1. const与指针
可以这么理解,第一个 const int 等价于 int const 我们可以看到 const修饰的是 int 。*p 是一个指向 const int 的指针,也就是说 p 指向的内容是常量,不能通过 p 去修改它的值,但指针 p 本身是可以指向不同的地址的。
第二个,const修饰的是 ptr,*p 是一个“常量指针”,即指针本身是常量,初始化后不能指向其他地址,但 p 指向的内容可以被修改。
这样子是不是更好理解一些, 一个是指向内容是常量,一个是指针本身是否是常量。
第三个 const 修饰的还是 int ,那指的是pp这个二级指针不能修改 最终的int 内容 ,但是 pp和pp的指向都可以修改
第四个 const 修饰的是ptr ,那就是 一级常量指针,那就是 一级指针指向的地址不能改变,但是内容可以改变
也可以通过左侧优先的原则去理解const
第一个 const修饰的是 int 表示指向数据不可变
第二个const修饰的是 int * 表示指向的地址不可变
第三个俩const 表示都不可变!
这两种方法可以结合使用!!!
2. 野指针
1.我们在定义任何变量后一定要进行初始化,尤其是指针,一旦定义一定要初始化 (nullptr);
所以一定要遵循开发规范!
3 ++++和----
运行顺序!!
++*++cp
++cp *(++cp) ++*(++cp)