找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1066|回复: 0
收起左侧

C语言:const关键字-我要和变量贴贴

[复制链接]
ID:1040469 发表于 2022-8-23 09:22 | 显示全部楼层 |阅读模式
我们知道const关键字是用来修饰变量的,它修饰的变量在程序运行的过程中不能发生改变,即不能进行二次赋值。那么当出现以下情况:
1、const int *p;
2、int const *p;
3、int * const p;
在这三句话中,总共有两个变量,分别是指针指向的整型数据和指针。如果修饰的是整型数据,那么*p即指针指向对象的内容不能发生改变;如果是指针的话,那么p即指针指向的对象不能发生改变。让人不禁流汗,const关键字,你还知道你在和谁贴贴嘛。


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

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

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

二、种子选手二号:int const *p
4.jpg

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

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

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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