修饰全局变量时:表明一个全局变量只对定义在同一文件中的函数可见(只能该文件内访问) 修饰局部变量时:表明该变量的值不会因为函数终止而丢失 修饰函数时:表明该函数只在同一文件中调用(只能该文件内访问) 修饰类的数据成员:表明对该类所有对象数据成员只有一个实例,即该实例归所有对象共有 修饰类的成员函数:该成
声明一个指向字符或字符串常量的指针,p所指向的内容不可更改(p是指向char类型的指针,const表示p指向的内容为const类型不可更改,不能指向const char类型) 没有const*的运算,所以与前面的一样 从右至左,Const修饰的是p,p中的值不可更改(p是一个地址) const_cast用来
与const对立,是类型修饰符,影响编译器编译的结果,用该关键字声明的变量随时可能发生改变 当一个值可能随时会发生改变时,编译器就不能去假设这个变量,优化器每次用到这个变量都必须去内存重新读取,而不是使用保存在寄存器里边的值。 作用:确保本条指令不会因编译器的优化而省略,且要求每次直接读值,保证对特殊地址的稳定访问
内联函数比普通函数多了关键字inline;以代码膨胀(复制)为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。 如果一些函数被频繁调用,不断地有函数入栈,即函数栈,会造成栈空间或栈内存的大量消耗,内联函数避免了函数调用的开销;普通函数有调用的开销; 普通函数在被调用的时候,需要寻址(函数入口地址);内联函数不
C语言是C++的子集,C++可以很好兼容C语言。但是C++又有很多新特性,如引用、智能指针、auto变量等; C++是面对对象的编程语言;C语言是面对过程的编程语言; C语言有一些不安全的语言特性,如指针使用的潜在危险、强制转换的不确定性、内存泄露等。而C++对此增加了不少新特性来改善安全性,如const常量、引用、c
在 C++ 中,可以使用 new 运算符来动态地分配内存。分配内存后,可以通过判断指针是否为空来判断分配内存是否成功。如果分配失败,则指针将为 nullptr。或者使用 try-catch 块来捕获分配内存时可能抛出的 std::bad_alloc 异常。在使用完动态分配的内存后,应当使用 delete 运算符释放内存