C++代码信息

运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,不支持键盘输入语句但是拥有更高的运行速度,输出简洁明了 。 点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
算法作业一;三分搜索 发布于:2021-03-04 12:56 单链表的插入删除 发布于:2021-03-04 13:26 单链表的基本实现 发布于:2021-03-04 10:32 线性表的静态实现-插入删除 发布于:2021-03-04 09:52 数组和指针 发布于:2021-02-26 16:59 extern 全局变量和全局函数 发布于:2021-02-26 16:53 typedef 别名和函数指针别名 发布于:2021-02-26 16:05 #define 宏替换的使用?? 发布于:2021-02-26 15:54 C和C++:一些符号 发布于:2021-02-26 14:03 C和C++奇怪内容 ## # __VA_ARGS__和... (可变参数) 宽字符 发布于:2021-02-25 23:09 2.25.1 poj 1979 发布于:2021-02-25 23:18 C和C++的不同-4-结构体函数不同 发布于:2021-02-25 15:55 C和C++的不同-3-形参传引用 发布于:2021-02-25 15:52 C和C++的不同-2-bool 发布于:2021-02-25 13:56 C和C++的不同-1-打印方式 发布于:2021-02-25 13:53 2.24.1 poj 1011 发布于:2021-02-25 22:03 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 发布于:2021-02-22 22:09 英雄年龄排序 发布于:2021-02-21 16:05 案例1 老师学生案例 发布于:2021-02-21 12:07 程序运行文件 发布于:2021-02-17 22:37 基类调用虚函数的动态绑定 发布于:2021-02-17 10:22 无类型参数模板 发布于:2021-02-05 23:52 设计模式-迭代器模式 发布于:2021-02-05 16:59 设计模式-解释器模式 发布于:2021-02-05 10:21 设计模式-访问者模式 发布于:2021-02-04 15:56 价格计算1.166 发布于:2021-02-03 17:24 任意多边形的最大内切圆算法 发布于:2021-02-02 20:15 设计模式-责任链模式 发布于:2021-01-28 11:24 设计模式-命令模式 发布于:2021-01-27 16:02 设计模式-享元模式 发布于:2021-01-26 15:24 生日专用的 发布于:2021-01-25 22:42 解凱撒加密 发布于:2021-01-25 22:37 设计模式-桥接模式 发布于:2021-01-25 17:05 设计模式-适配器模式 发布于:2021-01-25 16:14 设计模式-装饰模式 发布于:2021-01-25 13:50 整数的逆序 发布于:2021-01-24 16:52 素数de代码 发布于:2021-01-24 16:44 设计模式-建造者模式 发布于:2021-01-21 14:42 最小未出现的正整数 发布于:2021-01-20 13:55 vector容器存放自定义类型 发布于:2021-01-15 19:50 案例描述 需要设计一个英雄结构体,包括姓名年龄性别 要求创建结构体数组存放五名英雄 通过冒泡排序的算法,将数组中的英雄按年龄进行升序排列 最后打印 发布于:2021-01-15 16:20 centos添加多IP 发布于:2021-01-15 15:30 测试查找数组最大值 发布于:2021-01-14 22:17 泛型编程day1 发布于:2021-01-13 20:53 结构体数组,结构体嵌套的调用 小测答案及思路 发布于:2021-01-11 18:14 结构体章节的小结 测试 发布于:2021-01-11 18:32 圆面积求值法 发布于:2021-01-07 15:12 菲波那切数列 发布于:2021-01-06 23:41 矩阵求菲波那切数列 发布于:2021-01-06 23:41 演讲比赛--stl 发布于:2021-01-06 22:01 [更多]
显示目录

存储类

C++ 存储类

存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C++ 程序中可用的存储类:

  • auto
  • register
  • static
  • extern
  • mutable

auto 存储类

auto 存储类是所有局部变量默认的存储类。

{
   int mount;
   auto int month;
}

上面的实例定义了两个带有相同存储类的变量,auto 只能用在函数内,即 auto 只能修饰局部变量。

register 存储类

register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的 '&' 运算符(因为它没有内存位置)。

{
   register int  miles;
}

寄存器只用于需要快速访问的变量,比如计数器。还应注意的是,定义 'register' 并不意味着变量将被存储在寄存器中,它意味着变量可能存储在寄存器中,这取决于硬件和实现的限制。

static 存储类

static 存储类指示编译器在程序的生命周期内保持局部变量的存在,而不需要在每次它进入和离开作用域时进行创建和销毁。因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。

static 修饰符也可以应用于全局变量。当 static 修饰全局变量时,会使变量的作用域限制在声明它的文件内。

在 C++ 中,当 static 用在类数据成员上时,会导致仅有一个该成员的副本被类的所有对象共享。

#include <iostream>

// 函数声明 
void func(void);

static int count = 10; /* 全局变量 */

int main() {
    while(count--)
    {
       func();
    }
    return 0;
}
// 函数定义
void func( void ) {
    static int i = 5; // 局部静态变量
    i++;
    std::cout << "变量 i 为 " << i ;
    std::cout << " , 变量 count 为 " << count << std::endl;
}

当上面的代码被编译和执行时,它会产生下列结果:

变量 i 为  6  ,  变量 count 为  9 
变量 i 为  7  ,  变量 count 为  8  
变量 i 为  8  ,  变量 count 为  7  
变量 i 为  9  ,  变量 count 为  6  
变量 i 为  10  ,  变量 count 为  5  
变量 i 为  11  ,  变量 count 为  4  
变量 i 为  12  ,  变量 count 为  3  
变量 i 为  13  ,  变量 count 为  2  
变量 i 为  14  ,  变量 count 为  1  
变量 i 为  15  ,  变量 count 为  0

extern 存储类

extern 存储类用于提供一个全局变量的引用,全局变量对所有的程序文件都是可见的。当您使用 'extern' 时,对于无法初始化的变量,会把变量名指向一个之前定义过的存储位置。

当您有多个文件且定义了一个可以在其他文件中使用的全局变量或函数时,可以在其他文件中使用 extern 来得到已定义的变量或函数的引用。可以这么理解,extern 是用来在另一个文件中声明一个全局变量或函数。

extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候,如下所示:

第一个文件:main.cpp

#include <iostream>

int count ;
extern void write_extern();

main()
{
   count = 5;
   write_extern();
}

第二个文件:support.cpp

#include <iostream>

extern int count;

void write_extern(void) {
   std::cout << "Count is " << count << std::endl; 
}

在这里,第二个文件中的 extern 关键字用于声明已经在第一个文件 main.cpp 中定义的 count。现在 ,编译这两个文件,如下所示:

$g++ main.cpp support.cpp -o write

这会产生 write 可执行程序,尝试执行 write,它会产生下列结果:

$ ./write Count  is  5

mutable 存储类

mutable 说明符仅适用于类的对象,这将在本教程的最后进行讲解。它允许对象的成员替代常量。也就是说,mutable 成员可以通过 const 成员函数修改。

由JSRUN为你提供的C++在线工具
        JSRUN提供的C++在线运行,C++ 在线编译工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

皮肤:

运行模式:

嵌入代码 iframe嵌入: