当前位置:网站首页>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