C++'s enhancement of C language - type enhancement
1. register keyword enhancement
register keyword requests the compiler to place variables directly in registers, which is fast.
In C language, variables modified by register cannot take addresses; in C++, they can take addresses.
2. Variable detection enhancement
In C language, it is legal to repeatedly define multiple global variables with the same name. In C++, it is not allowed to define multiple global variables with the same name.
3. All variables and functions in C++ must have types
In C language
int f(); means the return value is int and accepts any parameters Function
int f(void); represents a parameterless function whose return value is int
In C++
int f(); has the same characteristics as int f(void) means a parameterless function whose return value is int
4. Enhanced function of ternary operator
Example: a< b ? a : b )= 30;
Difference: C language returns the value of the variable; C++ language returns the variable itself
The ternary operator in C language returns the variable value and cannot be used as an lvalue
In C++ The ternary operator can directly return the variable itself, so it can appear anywhere in the program
Note: If one of the values that the ternary operator may return is a constant value, it cannot be used as an lvalue ( a < b ? 1 :b )= 30;
How does the C language support features similar to C++?
====>The condition for lvalue: there must be memory space; the C++ compiler just helps the programmer get an address
1.const qualifier understanding
Function: Convert an object into a constant, read-only.
int main() { const int a;// 1 第1个第2个意思一样 代表一个常整形数 int const b;// 2 const int *c; // 3 第3个 c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改) int * const d; //4 第4个 d 常指针(指针变量不能被修改,但是它所指向内存空间可以被修改) const int * const e ; //5 第5个 e一个指向常整形的常指针(指针和它所指向的内存空间,均不能被修改) return 0; }
Example:
const int bufSize=512;bufSize初始化之后就无法进行修改了。 1)在C++中,const符号表原理:存储方式是符号表即key value key value bufSize 512
2. How the C++ compiler handles const constants: When a constant is declared, it is placed in the symbol table; when a constant is used Replace directly with the value in the symbol table.
Conclusion: The difference between const variables in C language and C++
const variables in C language are read-only variables and have their own storage space
const constants in C++
Storage space may or may not be allocated
When the const constant is global and needs to be used in other files
When the & operator is used to obtain the const constant Address
2) The similarities and differences between const and #define
are the same: both can be used as constants
Difference: const constants are processed by the compiler, providing type detection and Scope checking, macro definitions are processed by the preprocessor, simple text replacement.
The above is the summary of C++ review points (1). For more related content, please pay attention to the PHP Chinese website (www.php.cn)!