当前位置:网站首页>Const keyword, variable and function are decorated with const
Const keyword, variable and function are decorated with const
2022-04-23 18:15:00 【Talent、me】
const keyword
const yes constant Abbreviation , It is called constant , By const The modified entities are subject to compulsory protection , Avoid unexpected changes , It can improve the robustness and maintainability of the program .
const Variable
const int maxSize = 50; //int Type constant
const int *ptr = &maxSize; // Point to const int Pointer to type
int minSize = 100; //int type
int* const ptr1 = &minSize; // Point to int Constant pointer to type
const int* const ptr2 = &maxSize; // Point to const int Constant pointer to type
// Let's briefly describe
const int testSize = 30;
ptr = testSize; //ptr The pointer can be redirected to another variable
int num = 10;
prt1 = # // error , Constant pointers can only point to objects during initialization , Cannot change the object pointed to
It should be noted that :const The object must be initialized , Because the assignment operation cannot be performed , Can only be assigned at the time of definition .
const For functions
//const Cannot be used on output parameters , Can only be used on input parameters , Make sure that the scope of the function does not change
void copy(QString& dest, const QString sourse)
{
........
}
//const Used on the return value of a function
const int* readData()
{
}
const int* value = readData();// correct
int* value1 = readData();// error
// Because if the return value is a pointer , Must be of the same type as the return value .
//const Used at the end of a function declaration (const Member functions )
void test() const
{
//const Member functions must not modify data members or call other non members const Member functions , If... Is modified or called during this period , The compiler will report an error .
}
define ( Macro definition )
here , I have to say define This keyword
Constants are often defined as preprocessor macros .( I often use macro definitions to define constants now , Now it's slowly changing )
#define MAXSIZE (30)
int array[MAXSIZE];
The macro definition will replace the macro in the program in the preprocessing phase in the compilation phase .
Why use it const Not macro definitions ?
because const Expressions can be type checked at compile time , So I prefer const expression .
版权声明
本文为[Talent、me]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204210610471323.html
边栏推荐
- Robocode tutorial 5 - enemy class
- Rust: shared variable in thread pool
- Random number generation of C #
- Robocode Tutorial 4 - robocode's game physics
- Qtablewidget usage explanation
- MySQL auto start settings start with systemctl start mysqld
- re正則錶達式
- In shell programming, the shell file with relative path is referenced
- Implement a simple function to calculate the sum of all integers between M ~ n (m < n)
- Qt读写XML文件(含源码+注释)
猜你喜欢

C medium? This form of

Nat commun | current progress and open challenges of applied deep learning in Bioscience

【ACM】376. Swing sequence

硬核解析Promise對象(這七個必會的常用API和七個關鍵問題你都了解嗎?)

MATLAB从入门到精通(二)
![Resolve the error Max virtual memory areas VM max_ map_ count [65530] is too low, increase to at least [262144]](/img/5f/a80951777a0473fcaa685cd6a8e5dd.png)
Resolve the error Max virtual memory areas VM max_ map_ count [65530] is too low, increase to at least [262144]

ArcGIS table to excel exceeds the upper limit, conversion failed

positioner

logstash 7. There is a time problem in X. the difference between @ timestamp and local time is 8 hours
Scikit learn sklearn 0.18 official document Chinese version
随机推荐
Selenium + webdriver + chrome realize Baidu to search for pictures
How to restore MySQL database after win10 system is reinstalled (mysql-8.0.26-winx64. Zip)
positioner
Read excel, int digital time to time
QT reading and writing XML files (including source code + comments)
mysql自动启动设置用Systemctl start mysqld启动
proxy server
读取excel,int 数字时间转时间
Serialization scheme of serde - trust
RC smart pointer in rust
MATLAB小技巧(6)七种滤波方法比较
Queue solving Joseph problem
Linux installs MySQL in RPM (super simple)
Robocode tutorial 3 - Robo machine analysis
From introduction to mastery of MATLAB (2)
Data stream encryption and decryption of C
If condition judgment in shell language
Vulnérabilité d'exécution de la commande de fond du panneau de commande JD - freefuck
Robocode tutorial 8 - advanced robot
Docker 安装 MySQL