首页 > 其他分享 >const 修饰的是啥

const 修饰的是啥

时间:2024-05-28 18:04:50浏览次数:16  
标签:const int a1 对象 修饰 指针

1.概要

把const分别放在不同的位置表示的意义有啥不同。
1.const A * c = &a;
2.A const * c = &a;
3.A * const c = &a;
结论,1、2的情况修饰的都是类型。即c这个指针指向的对象是常量。
3的情况修饰的是指针,即c这个指针本身是常量,不能修改。但c指向的对象不是常量,是可以改变的。

2.代码

#include <iostream>

class A
{
public:
    int a;
};



int main()
{
    A a1;
    A a;
    A* b = &a;
    b->a = 5;
    const A* c = &a;
    //c->a = 6;
    c = &a1;
    A* const d = &a;
    d->a = 5;
    //d = &a1;//不可:证明const修饰的是指针。
    A const * e = &a;
    //e->a = 6; //不可:证明const修饰的是指针指向的对象
    e = &a1;
    std::cout << "Hello World!\n";
}

3.补充

const 限制的范围,如果这个对象被const了那么这个对象的全部变量是否都被const了?对,所以为了说明上面的问题,用下面一个更单纯的例子,更能体现const 修饰对象,还是修正对象本身的差别

int main()
{
    int a;
    int* p_a = &a;
    *p_a = 5;
    const int* p_a = &a;
    //*p_a = 5;
    p_a = &a;
    int const* p_b = &a;
    //*p_b = 5;//不可:证明const修饰的是指针指向的对象
    p_b = &a;
    int * const p_c = &a;
    *p_c = 5;
    //p_c = &a;//不可:证明const修饰的是指针。
}

标签:const,int,a1,对象,修饰,指针
From: https://blog.csdn.net/xie__jin__cheng/article/details/139265776

相关文章

  • TypeScript中的`let`、`const`、`var`区别:变量声明的规范与实践
    TypeScript中的let、const、var区别:变量声明的规范与实践引言在TypeScript中,变量声明是代码编写的基础部分。let、const、var是三种用于变量声明的关键字,它们各自有不同的作用域规则和可变性特点。基础知识作用域:变量可以在整个文件(全局作用域)或某个特定代码块(局部作用......
  • Spring学习:AllArgsConstructor、RequiredArgsConstructor注入bean
    @NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor(搭配@FieldDefaults、@NonFinal)的区别以及在springboot常用地方 注解解释、区别:@NoArgsConstructor:生成无参的构造方法。@AllArgsConstructor:生成该类下全部属性的构造方法。(主讲)@RequiredArgsConstructo......
  • HITSC_3_Software Construction Process and Configuration Management
    目标软件开发流程及模式,敏捷开发,软件配置管理SCM,Git,软件构造过程和构造工具SDLC传统软件开发模型瀑布模型线性模型优点:划分阶段,管理简单缺点:不迭代,所以缺少灵活性,也难以适应需求;并且用户看不到原型,导致风险高,前期错误后期发现增量模型瀑布串行,容易适应需求增加V模型......
  • C++ const关键字
    C++const关键字记得有次面试carmeraturning岗,面试官让我谈谈const关键字的作用我提到被const修饰变量会存入.rodata的只读数据段不可更改,面试官好像不是很满意,现在想想carmeraturning岗位好像主要用C++,面试官当时是想让我说说C++中const关键字的作用。C++中const关键字的作用......
  • 求职简历要“修饰”吗?
    答案是肯定的!但是修饰要有度,要巧妙!这跟美女需要化妆,某音出镜需要美颜是一样的道理。有些职场人的简历实在很难看,跳槽频繁,给用人单位造成很不好的印象。为了就业,把某些短暂的经历隐去,适当拉长前后工作的时间段,或干脆不写这段“短暂”的经历,以“空档期”做解释。从获得一份值得......
  • Lua中调用ref和out修饰参数的函数/重载函数
    [12]lua中调用ref和out修饰参数的函数数值publicintRefCompute(inta,refintb,refintc,intd){b+=a;c+=d;returnb+c;}publicintOutCompute(inta,outintb,outintc,intd){b=a+1;c=d+2;returnb+c;}......
  • 易基因:MeRIP-seq揭示METTL3介导m6A修饰增加Hspa1a稳定性以抑制细胞衰老 | 研究速递
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。老年骨质疏松症主要由成骨细胞功能衰减引起,进而导致骨量减少和骨重塑过程破坏。目前许多研究表明m6A修饰在骨质疏松症的调控中发挥着重要作用,但大多数研究集中在骨髓间充质干细胞(BMSCs)分化的作用上,而m6A对成骨细胞......
  • 可视化理解constructor、prototype、__proto__形成的指向图
    Person类和person实例首先给出一段js代码:functionPerson(){}constperson=newPerson()根据以下规则:每个实例都有一个__proto__指向其原型对象。每个构造函数都有一个prototype属性指向其实例的原型对象每一个原型都有一个prototype指向其实例的构造函数。于是就......
  • P9691 [GDCPC2023] Base Station Construction
    原题链接题解注意数据范围1.我们不知道要在哪些地方建站,所以考虑都遍历一遍2.如果一个地方\(i\)要建站,那么在它前面且离它最近的一个站,一定建在所有右端点大于\(i\)的区间中,左端点最大区间里所以我们令\(dp[i]\)表示为在\(i\)建立一个站,且和\([1,i]\)有交集的区间......
  • 不同情况下,const修饰的变量存储的位置
    1前言在C语言中,const修饰的变量存储在适当的内存区域中,具体取决于变量的声明方式和作用域。2全局const变量如果const变量是在全局作用域中声明的,它将存储在静态存储区(StaticStorageArea)中。静态存储区是在程序启动时分配的,该区域中的数据在整个程序执行期间都......