C预处理器、作用域、static、const以及内存管理

本文探讨了C++中const修饰符在函数参数、返回值及类中的应用,包括const成员函数与数据成员的特性。同时,深入解析了C++与C语言的内存管理差异,如动态对象的初始化与const对象的动态分配回收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.4.3 修饰函数参数与返回值

cosnt既可以修饰函数返回值、各参数、函数自身。

  • const 修饰返回值
    返回值有三种:值返回、指针返回、引用返回。
    对于内部数据类型来说,返回值是否是常量没有区别。当时自定义的数据类型的时候,有时候不是const返回,会造成一定的困扰。
    对于指针而言,注意不能返回指向局部栈变量的指针,返回时是无效的。指向堆或者data或者bss区时可以的。
  • const 修饰函数 参数
    参数以值传递的时候,加const 意义也不大。主要还是对于地址。因为假如传递地址的时候,不加const,那么就不能传递指向const的指针。

1.4.4 const 在类中的应用

  • const成员函数
  • 如果两个成员函数只是常量性不同,可以被重载。
  • const 数据成员
    常量数据成员必须在 构造函数的成员初始化列表中进行初始化。

1.5 内存管理与释放

1.5.1 c语言内存操作函数

c语言中是 malloc free
C++ new delete

1.5.2 C++内存管理

  • 动态创建对象的初始化
    int* p1=new int //无初始化
    int* p1=new int(); //初始化为0
    但对于类类型的对象,不管有没有初始化,都会调用默认构造函数。
  • const对象的动态分配和回收
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值