【ZMH的学习笔记】修饰符类型

实现代码:

signed int num1 = -10; // 定义有符号整型变量 num1,初始值为 -10
unsigned int num2 = 20; // 定义无符号整型变量 num2,初始值为 20

short int num1 = 10; // 定义短整型变量 num1,初始值为 10
long int num2 = 100000; // 定义长整型变量 num2,初始值为 100000

long long int num1 = 10000000000; // 定义长长整型变量 num1,初始值为 10000000000

float num1 = 3.14f; // 定义单精度浮点数变量 num1,初始值为 3.14
double num2 = 2.71828; // 定义双精度浮点数变量 num2,初始值为 2.71828

bool flag = true; // 定义布尔类型变量 flag,初始值为 true

char ch1 = 'a'; // 定义字符类型变量 ch1,初始值为 'a'
wchar_t ch2 = L'你'; // 定义宽字符类型变量 ch2,初始值为 '你'

 为了理解 C++ 解释有符号整数和无符号整数修饰符之间的差别,我们来运行一下下面这个短程序:

#include <iostream>
using namespace std;
 
/* 
 * 这个程序演示了有符号整数和无符号整数之间的差别
*/
int main()
{
   short int i;           // 有符号短整数
   short unsigned int j;  // 无符号短整数
 
   j = 50000;
 
   i = j;
   cout << i << " " << j;
 
   return 0;
}

当上面的程序运行时,会输出下列结果:

-15536 50000

上述结果中,无符号短整数 50,000 的位模式被解释为有符号短整数 -15,536。

constconst 定义常量,表示该变量的值不能被修改。volatile修饰符 volatile 告诉该变量的值可能会被程序以外的因素改变,如硬件或其他线程。。restrict由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict。mutable表示类中的成员变量可以在 const 成员函数中被修改。static用于定义静态变量,表示该变量的作用域仅限于当前文件或当前函数内,不会被其他文件或函数访问。register用于定义寄存器变量,表示该变量被频繁使用,可以存储在CPU的寄存器中,以提高程序的运行效率。

mutable 实例:

class Example {
public:
    int get_value() const {
        return value_; // const 关键字表示该成员函数不会修改对象中的数据成员
    }
    void set_value(int value) const {
        value_ = value; // mutable 关键字允许在 const 成员函数中修改成员变量
    }
private:
    mutable int value_;
};

volatile 实例:

volatile int num = 20; // 定义变量 num,其值可能会在未知的时间被改变

mutable 实例:

class Example {
public:
    int get_value() const {
        return value_; // const 关键字表示该成员函数不会修改对象中的数据成员
    }
    void set_value(int value) const {
        value_ = value; // mutable 关键字允许在 const 成员函数中修改成员变量
    }
private:
    mutable int value_;
};

static 实例:

void example_function() {
    static int count = 0; // static 关键字使变量 count 存储在程序生命周期内都存在
    count++;
}

register 实例:

void example_function(register int num) {
    // register 关键字建议编译器将变量 num 存储在寄存器中
    // 以提高程序执行速度
    // 但是实际上是否会存储在寄存器中由编译器决定
}

 附录:

【ZMH的学习笔记】函数

相关推荐

  1. ZMH学习笔记修饰符类型

    2024-07-18 21:54:04       20 阅读
  2. C# 学习笔记-构造自己类型

    2024-07-18 21:54:04       39 阅读
  3. C++学习笔记-用const修饰类成员函数

    2024-07-18 21:54:04       17 阅读
  4. Shell 学习笔记 - 变量类型 + 变量赋值

    2024-07-18 21:54:04       20 阅读
  5. ResutBuilder 学习笔记二:增加新输入数据类型

    2024-07-18 21:54:04       42 阅读
  6. c#常用修饰符

    2024-07-18 21:54:04       57 阅读
  7. Vue 中修饰符

    2024-07-18 21:54:04       30 阅读
  8. soliditymodifier修饰符

    2024-07-18 21:54:04       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 21:54:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 21:54:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 21:54:04       57 阅读
  4. Python语言-面向对象

    2024-07-18 21:54:04       68 阅读

热门阅读

  1. .Net C# Using 关键字的介绍与使用

    2024-07-18 21:54:04       22 阅读
  2. 前端实现将多个页面导出为pdf(分页)

    2024-07-18 21:54:04       19 阅读
  3. .NET_依赖注入_相关概念及基础使用

    2024-07-18 21:54:04       23 阅读
  4. ES6模块化方案导入导出模块方法

    2024-07-18 21:54:04       22 阅读
  5. 设备树节点和struct device的关系及示例

    2024-07-18 21:54:04       18 阅读
  6. Html_Css问答集(8)

    2024-07-18 21:54:04       18 阅读
  7. APP开发者选择苹果企业签名的理由是什么?

    2024-07-18 21:54:04       21 阅读
  8. 负载均衡轮询逻辑

    2024-07-18 21:54:04       19 阅读
  9. swift小知识点(二)

    2024-07-18 21:54:04       18 阅读
  10. Redis常见阻塞原因

    2024-07-18 21:54:04       22 阅读
  11. Pandas库学习之DataFrame.replace()函数

    2024-07-18 21:54:04       21 阅读
  12. ros2--插件

    2024-07-18 21:54:04       27 阅读