C/C++教程

const int *p 与 int *const p的区别 最方便理解的记忆方法

本文主要是介绍const int *p 与 int *const p的区别 最方便理解的记忆方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • const int  *p
  • int const  *p
  • int *const  p
  • const int * const p
  • 总结

如果您对这几个有一定的了解,或者只是记忆模糊不清建议您直接看本文最后总结部分,相信对您有一个更好的理解记忆方式,如果您对此比较陌生,建议您从头观看,直观感受。

强调:总结是精华本分。


一、const int  *p

直接上代码

 这段代码会报错,那么为什么会报错,原因就是const封锁了*p   *p是一个常量,所以他是不可以更改的。

 这里就是说*p是常量  但是和我a没有关系   a本身还是可以修改,a本身是个变量。

 哪如果我改变p的指向呢  编译器也不报错,这就说明const他根本修饰的是*p ,对p的指向没有任何的影响。我们继续看下面的文章来看。

二、int const  *p

int cosnt *p与 const int *p 效果一样在这里不在多说。

三、int  *const  p

大家和上面的对比一下,仅仅将const int *p改成了 int *const p。但是效果大大的不一样,这是因为const修饰的对象不一样了,int *const p=&a; 其中的const修饰的是p  p是一个指针,加了const说明其指向不能在改变了。

大家对比一下,在这里p指向不能改变,但是*p又不影响。很多人就很好奇const到底修饰哪一个。该怎么判断,下面我们把示例看完在总结部分会详细说怎么判断。

 

四、const int  *const  p

正如大家想的那样,如果前后都加了const,那么*p 和 p都将不能改变。上面的所有实例让我们有了一个清醒的认知,但是怎么判断呢,记忆呢,请看下面。

总结

 我们举一个显示生过中的例子。看图记忆。

 

 

好了说到这里,我相信大家会对这四个经常让人搞混的const有一个清楚的认知和记忆。

如果本文有任何问题,欢迎大家留言。

这篇关于const int *p 与 int *const p的区别 最方便理解的记忆方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!