cons的作用
(1)可以定义const常量 例如:
const int Max=100;
int Array[Max];
(2)便于进行类型检查 例如:
void f(const int i) { .........}
编译器就会知道i是一个常量,不允许修改;
(3)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。
还是上面的例子,如果在函数体内修改了i,编译器就会报错;
例如:
void f(const int i) { i=10;//error! }
(5) 为函数重载提供了一个参考。
class A
{
......
void f(int i) {......} file://一个函数
void f(int i) const {......} file://上一个函数的重载
......
};
(6) 可以节省空间,避免不必要的内存分配。
例如:
#define PI 3.14159 file://常量宏
const doulbe Pi=3.14159; file://此时并未将Pi放入ROM中
......
double i=Pi; file://此时为Pi分配内存,以后不再分配!
double I=PI; file://编译期间进行宏替换,分配内存
double j=Pi; file://没有内存分配
double J=PI; file://再进行宏替换,又一次分配内存!
const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。
(7) 提高了效率。
编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
使用const
(1)修饰一般常量,常数组,常对象
修饰符const可以用在类型说明符前,也可以用在类型说明符后。 例如:
int const x=2; 或 const int x=2;
int const a[5]={1, 2, 3, 4, 5}; 或 const int a[5]={1, 2, 3, 4, 5};
class A; const A a; 或 A const a;
(2)修饰指针
const int *A; 或 int const *A; //const修饰指向的对象,A可变,A指向的对象不可变
int *const A; //const修饰指针A, A不可变,A指向的对象可变
const int *const A; //指针A和A指向的对象都不可变
(3)修饰引用
const double & v; 该引用所引用的对象不能被更新
(4)修饰函数的返回值:
const修饰符也可以修饰函数的返回值,是返回值不可被改变,格式如下:
const int Fun1();
const MyClass Fun2();
(5)修饰类的成员函数:
const修饰符也可以修饰类的成员函数,格式如下:
class ClassName
{
public:
int Fun() const;
.....
};
这样,在调用函数Fun时就不能修改类里面的数据
(6)在另一连接文件中引用const常量
extern const int i; //正确的引用
extern const int j=10; //错误!常量不可以被再次赋值
*******************放在类内部的常量有什么限制?
class A
{
private:
const int c3 = 7; // err
static int c4 = 7; // err
static const float c5 = 7; // err
......
};
初始化类内部的常量
1 初始化列表:
class A
{
public:
A(int i=0):test(i) {}
private:
const int i;
};
2 外部初始化,例如:
class A
{
public:
A() {}
private:
static const int i;
};
const int A::i=3;
相关推荐
LLVM实战:如何用Clang+LLVM打造你的第一个C++编译器(附完整配置步骤)
本文详细介绍了如何使用Clang+LLVM构建C++编译器的完整配置步骤,从环境准备到编译流程剖析,再到调试与优化技巧。通过实战指南,帮助开发者深入理解LLVM编译器框架的工作原理,并掌握交叉编译与性能分析等高级功能。
关键字const的含义、作用与优点
const含义: 只要一个变量前用const来修饰,就意味着该变量里的数据只能被访问,而不能被修改,也就是意味着const“只读”(readonly) 规则:const离谁近,谁就不能被修改; const修饰一个变量时,一定要给这个变量初始化,若不初始化,在后面也不能初始化。 const作用: 1:可以用来定义常量,修饰函数参数,修饰函数返回值,且被co
RcisTarget实战:从差异基因到转录因子调控网络的完整分析流程(附代码)
本文详细介绍了RcisTarget工具在转录因子调控网络分析中的完整流程,从差异基因到motif富集分析,再到结果可视化与生物学解读。通过实战代码演示,帮助研究者掌握这一强大的R包应用,揭示基因表达背后的调控机制,特别适用于基因组学和生物信息学研究。
说说const的作用,越多越好
说说const的作用 const修饰全局变量; const修饰局部变量; const修饰指针,int * const; const修饰指针指向的对象, const int *; const修饰引用做形参; const修饰成员变量,必须在构造函数列表中初始化; const修饰成员函数,说明该函数不应该修改非静态成员,但是这并不是十分可靠的,指针所指的非成员对象值可能会被改变 修饰...
绕过ROS2!在RDK X5上直接用Python调用海康相机C++ SDK的避坑指南
本文详细介绍了在RDK X5上绕过ROS2,直接使用Python调用海康相机C++ SDK的轻量化方案。通过Cython构建Python绑定,提取海康相机SDK核心组件,实现高效图像采集。文章涵盖环境准备、Cython接口设计、编译系统配置及性能优化技巧,特别适合ARM64平台开发者。
TenserRt平台SMOKE 3D目标检测部署完整教程:从理论到实践
本教程详细介绍了在RK3588平台上部署SMOKE 3D目标检测模型的完整流程。SMOKE是一种创新的单阶段单目3D检测方法,通过关键点估计直接预测3D目标信息,有效解决了深度信息缺失等挑战。文章从理论基础出发,解析了SMOKE的核心算法和网络架构,包括DLA-34主干网络和关键点中心化策略。同时提供了详细的Docker环境配置、模型导出到ONNX格式的实践指南,以及TensorRT引擎构建和性能优化的关键技术要点。该教程为开发者在嵌入式平台上实现高效3D目标检测提供了完整的技术参考。
C语言中static、const的用法(能说出越多越好)
1、C语言中static、const的用法(能说出越多越好) static在C语言中主要是两种用法 1、修饰局部变量 2、修饰函数和全局变量 static修饰局部变量时该变量是存放在静态存储区,生命周期是整个程序结束。 static局部变量初次定义时就要初始化,且只能初始化一次。如果在定义的时候不初始化,编译器就会自动赋值为0;(也就是说如果重复调用同一个函数,在第二次调用时,就不会再执行stat...
华为OD机考双机位C卷 - 完美走位 (Java & Python& JS & C/C++ & GO )
华为OD机考双机位C卷 - 完美走位(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。
const 的作用
在C++中,`const`变量一经定义必须立即初始化,因为之后你将无法修改它们的值。这是因为`const`关键字用于定义常量值,这意味着该值在编译时就应该是已知的,并且在程序的整个生命周期中不会改变。// 正确:const变量在定义时初始化// 错误:未初始化的const变量// 错误:不能给const变量赋值编译器会报错,因为`myConst`被定义为`const`但没有被初始化。一旦定义了`const`变量,就不能再给它赋值,因为`const`本意就是表明该变量的值在定义后不可变。此外,
APM32取代STM32的经验分享
我仔细检查了代码中与硬件相关的部分,例如外设寄存器的访问和中断处理程序的设置,并进行了相应的修改。在本文中,我将分享我将APM32引入项目中取代STM32的经验,并提供相应的源代码。我查看了APM32的官方网站、开发者论坛和相关社交媒体,了解了开发者社区的活跃度和可用的资源。总结起来,将APM32替换STM32的过程需要经过几个关键步骤:了解APM32的规格和功能、评估软件生态系统、迁移代码和调试,以及性能和功耗优化。在开始替换之前,我对APM32进行了详细的研究和评估,以确保它能够满足项目的需求。
使用LSTM实现自动调制识别(RML2018.01a)
目录一、LSTM的代码实现1.1 导入包1.2 数据读取及数据集划分1.3 数据预处理1.4 构建LSTM模型 本文基于RML2018.01a大型数据集,给出LSTM的信号识别的实现方式(附代码) RML2018.01a数据集信息如下: 模型 传送门 CNN/ResNet 使用CNN/ResNet实现自动调制识别(RML2018.01a) LSTM 使用LSTM实现自动调制识别(RML2018.01a)) 一、LSTM的代码实现 1.1 导入包 import numpy as np
c语言中 const 的作用
const 详细版
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
C语言 基础知识之const(const是什么,const的作用,const的使用)
一、const是什么 const是C/C++中的类型修饰符。 二、const的作用 1、对变量声明只读特性,保护变量值以防被修改 2、节省空间,避免不必要的内存分配。const修饰的变量在程序运行过程中只有一份拷贝 3、提高程序运行效率。编译器不为普通const常量分配存储空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储和读取内存的操作。 三、const的使用 1、const和普通变量 (1)编译器在编译过程中把...
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
了解作用域; var,let,const的区别
ECMAScript是一个国际通过的标准化脚本语言。 通俗理解:ECMAScript是JavaScript的语言规范,JavaScript语言本身就是ECMAScript 一、作用域 ES5中有:全局作用域、函数作用域,ES6又新增了块级作用域 { }。块级作用域由{ }包括,if语句和for语句里的{ }也属于块级作用域 (1)//块级作用域,通过var定义的变量可以跨块作用域访问到。 { var a = 1; console.log(a); // 1 } console.log
函数末尾加const的作用
#include <iostream> using namespace std; class Test { int num; public: Test() { num=10; } void print1() { cout<<num<<endl; } ...
const的作用和用法
一、const的作用 1.为给读你代码的人传达非常有用的信息,声明一个参数为常量是为了告诉用户这个参数的应用目的; 2.通过给优化器一些附加信息,使关键字const也许能产生更紧凑的代码; 3.合理使用关键字const可以使编译器很自然的保护那些不希望被修改的参数,防止无意的代码修改,可以减少bug的出现; 二、const的用法 常变量: const 类型说明符 变量名 常引用:...
var、let、const区别和作用域
var、let、const区别和作用域
CONST的主要作用
CONST的主要作用 http://www.chinabaike.com/t/35903/2016/0511/4887538.html CONST -主要作用 (1)可以定义const常量,具有不可变性。 例如:constintMax=100;Max++会产生错误; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。 例如
【c++】const的作用
最基础的用法,核心是让变量 / 对象变成 “只读”,一旦初始化就不能被赋值修改,编译器会检查并阻止任何修改操作,避免意外篡改。—— 用来限定变量 / 函数 / 指针等 “不能被修改”,既能提升代码安全性,也能增强可读性。:约束对象的 “只读属性”,确保对象状态不会被意外修改,是类设计中 “只读接口” 的基础。之前写了const在函数当中的作用,那就在写一下const的其他作用,帮助自己理解。const 是 C++ 里最基础也最关键的关键字之一,核心是。,表示函数不会修改字符串内容,提升代码安全性。
let const 块级作用域
一:let 、const 与 var 相比存在 块级作用域,一个{} 就是一个块 var 定义的变量只在(全局) 和 (函数)中 有作用域,其余都可用 if (true) { var a = 5 } console.log(a) // 5 if(){} 不是函数,所以 a 的作用域是全局 if (true) { let a = 5 } ...
【const关键字的作用】
一、const的定义 二、const使用原理 1、const+全局/局部变量 2、const修饰指针/引用 3、const修饰函数参数 4、const修饰函数返回值 5、const成员函数和数据成员 6、const修饰类对象 二、const与宏定义的区别 三、const与static的区别
c++中const的作用
const关键字的作用 1)欲阻止一个变量被改变,可使用const,在定义该const变量时,需先初始化,以后就没有机会改变他了; 2)对指针而言,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const; 3)在一个函数声明中,const可以修饰形参表明他是一个输入参数,在函数内部不可以改变其值; 4)对于类的成员函数,有时候必须指定其为const类型,表明其是一个常函数,不能修改类的成员变量; 5)对于类的成员函数,有时候必须指定其返回值为const类..
Const,Const函数,Const变量,函数后面的Const的作用
参考: 博文01:https://www.xuebuyuan.com/3267655.html 一、一些理论知识 1、看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const 是constant 的缩写,“恒定不...
748



被折叠的 条评论
为什么被折叠?



