【第三篇章】 存储类和运算符
原创大约 2 分钟
一、存储类
存储类
定义 c++ 程序中变量/函数的范围(可见性)和生命周期,这些说明符放在它们所修饰的类型之前。
auto:
这是默认的存储类说明符,通常可以省略不写。auto 指定的变量具有自动存续期,即它们的生命周期仅限于定义它们的块。static:
用于定义具有静态存储期的变量和函数,它们的生命周期贯穿整个程序的运行期。在函数内部,static变量的值在函数调用之间保持不变,在文件内部或全局作用域,static变量具有内部连接,只能在定义它们的文件中访问。extern:
用于声明具有外部连接的变量或函数,它们可以在多个文件之间共享。默认情况下,全局变量和函数具有 extern 存储类。在一个文件中实用 extern 声明,另一个文件中定义的全局变量或函数,可以实现跨文件共享。mutable(c++11):
用于修饰类中成员变量,允许在const成员函数中修改这些变量的值。通常用于缓存或计数器等需要在 const 上下文中修改的数据。thread_local(c++11):
用于定义具有线程局部存储期的变量,每个线程都有自己的独立副本。线程局部变量的声明周期与线程的声明周期相同。
二、运算符
1、算术运算符
- 把两个操作数相加。
- 从第一个操作数中减掉第二个操作数。
- 把两个操作数相乘。
- / 分子除以分母。
- % 取模运算符,整除后的余数。
- ++ 自增运算符,整数数值加1。
- -- 自减运算符,整数数值减1。
2、关系运算符
- == 检查两个操作数的值是否相等,如果条件相等条件为真。
- != 检查两个操作数的值是否相等,如果条件不相等条件为真。
检查左操作数的值是否大于右操作数的值,如果 是 条件为真。
- < 检查左操作数的值是否小于右操作数的值,如果 是 条件为真。
= 检查左操作数的值是否大于或者等于右操作数的值,如果 是 则条件为真。
- <= 检查左操作数的值是否小于或者等于右操作数的值,如果 是 则条件为真。
3、逻辑运算符
- && 称为逻辑运算符,如果两个操作数都为 true,则条件为真。
- || 称为 逻辑或 运算符。如果两个操作数中任意一个为 true,则条件为 true。
- ! 称为逻辑非运算符,用来逆转操作数的逻辑状态,如果条件为真则逻辑非运算符将使其为 false。