C++ Const指针学习

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了C++ Const指针学习脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Const指针

const指针顾名思义就是常量指针的意思。下面将通过一些具体例子说明const指针的几种用法。

const tyPE *p 特性

  • 止使用p指针来修改p所指向的值,下面是最简单的错误例子;
  1 #include <iostream>
  2 
  3 using namespace std;
  4 
  5 int main()
  6 {
  7     int yes = 100;
  8     const int *p = &yes;
  9 
 10     *p = 10;  //Error assign!
 11 
 12     return 0;
 13 }

用g++编译的结果是:

error: assignment of read-only location ‘* p’.
  • p所指向的依旧是变量,并不是常量,因此可以通过yes本身来修改值。基于这个原因,我觉得c++PRimer plus中将p称为指向一个常量对象的指针是不正确的,反而像编译结果一样,将其称为只读指针更加符合中文的含义;
  • 将const变量的地址赋给普通指针是非法的,简单程序例子如下;
  7     const int yes = 100;
  8     int *p = &yes;
用g++编译的错误为:invalid conversion Fromconst int*’ to ‘int*’ .
  • 将指针指向指针的const关系将遵循以上三条规则进行递归判断是否合法。同样不能将const 常量数组的地址赋给普通指针;不能将常量作为参数传递给非常量形参的函数。
  • 可以修改p的值。

type * const p 特性

  • 无法修改p的值,可以修改*p的值,我将其称为常量指针;

脚本宝典总结

以上是脚本宝典为你收集整理的C++ Const指针学习全部内容,希望文章能够帮你解决C++ Const指针学习所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。