设为首页收藏本站language 语言切换
查看: 2423|回复: 1
收起左侧

[分享] C语言:const关键字-我要和变量贴贴

[复制链接]
发表于 2022-8-23 09:18:42 | 显示全部楼层 |阅读模式

我们知道const关键字是用来修饰变量的,它修饰的变量在程序运行的过程中不能发生改变,即不能进行二次赋值。那么当出现以下情况:
1、const int *p;
2、int const *p;
3、int * const p;
在这三句话中,总共有两个变量,分别是指针指向的整型数据和指针。如果修饰的是整型数据,那么*p即指针指向对象的内容不能发生改变;如果是指针的话,那么p即指针指向的对象不能发生改变。让人不禁流汗,const关键字,你还知道你在和谁贴贴嘛。

接下来,便让福尔摩斯.小李,为你揭晓“渣男”,const关键字的真正(修饰)对象。

一、种子选手1号:const int *p;

经过一番试探,可以很明显的看到,在这种情况下,它修饰的是指针指向的整型数据,而不是指针。因为指针改变指向没有报错,反而当我改变指向对象的内容的时候,系统表示*p只处于只读状态,即const关键字当前修饰的是整型数据(指向对象的内容)。

二、种子选手二号:int const *p;

通过编译可以看到,它和const int *p修饰的对象是一样的,也是整型数据,即指向对象的内容不能发生改变。

三、种子选手三号:int * const p;

通过编译我们可以看到,此时const修饰的变量是指针,指针在运行的过程中指向的对象不能发生改变。


总结一下,const关键字只有在和指针贴贴的最近的时候,修饰的对象才是指针,在其余情况下修饰的都是指针指向的内容。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?论坛注册

x
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2026-8-28 01:21 , Processed in 0.060891 second(s), 10 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表