C++在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,更高效的运行,点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
【C++】vector预留空间 发布于:2022-09-30 23:06 【C++】vector互换容器 发布于:2022-09-30 22:57 【C++】vector数据存取 发布于:2022-09-30 22:39 4写个Complex类 发布于:2022-09-30 22:54 五位数相乘 发布于:2022-09-30 21:25 没卸出来。 发布于:2022-09-30 21:25 22_9_30_插入排序 发布于:2022-09-30 21:20 22_9_30_选择排序 发布于:2022-09-30 21:16 插入排序法 发布于:2022-09-30 21:20 不知道是啥 发布于:2022-09-30 20:55 数字排序(冒泡) 发布于:2022-09-30 20:32 能被三整除 发布于:2022-09-30 19:31 顺序表代码 发布于:2022-09-30 19:10 【C++】vector插入和删除 发布于:2022-09-30 21:11 【C++】vector容量和大小 发布于:2022-09-30 16:43 【C++】vector赋值操作 发布于:2022-09-30 11:56 c++基类派生类 发布于:2022-09-30 09:17 给出一组关键字K={11,9,3,20,56,32},写出应用下列方法排序时,每轮排序中关键字的排序状态 发布于:2022-09-29 21:51 "找出一个满足下列竖式的五位数,输出该五位数及相应六位" 发布于:2022-09-29 21:26 数组冒泡法 发布于:2022-09-29 21:25 五位数输出成六位数 发布于:2022-09-29 21:17 冒泡排序法 发布于:2022-09-29 21:16 冒泡的实现 发布于:2022-09-29 20:59 1~n整数中能被3整除的数 发布于:2022-09-29 20:54 输入数组元素,进行查找。 发布于:2022-09-29 22:53 顺序查找的实现 发布于:2022-09-29 20:44 c++加减乘除 发布于:2022-09-29 20:14 1-n被3整除 发布于:2022-09-29 19:34 顺序查找法 发布于:2022-09-29 19:16 冒泡的实现 完全逆序,完全有序 发布于:2022-09-29 18:40 中缀表达式转后缀 发布于:2022-09-29 18:40 顺序查找 数据在数组中,数据不在数组中 发布于:2022-09-29 18:34 求满足个位比百位大,百位比十位大,三个位数之和和三个位数之积相等的三位数 发布于:2022-09-29 18:29 1~n整数中能被3整除的数 发布于:2022-09-29 18:24 逆序的啊。 发布于:2022-09-29 18:16 顺序表的查找 发布于:2022-09-29 18:13 顺序查找的实现 发布于:2022-09-29 18:02 ffmpeg - hls 发布于:2022-09-29 17:52 顺序查找。 发布于:2022-09-29 15:38 冒泡的实现 发布于:2022-09-29 15:33 顺序查找的实现 发布于:2022-09-29 15:20 顺序查找的实现 发布于:2022-09-29 15:18 三位数,这三位数要满足个位比百位大,百位比十位大,三个位数之和和三个位数之积相等 发布于:2022-09-29 15:15 1~n整数中能被3整除的数 发布于:2022-09-29 15:09 假如教学楼里有n个台阶, 每次你可以跨1个台阶或者2个台阶, 请问走着n个台阶有多少中走法? 发布于:2022-09-29 14:54 有一个三位数,个位数字比百位数字大,而百位数字比十位数字大,并且各位数字之和等于各位数字之积。求这个三位数。 发布于:2022-09-29 14:41 打印1-n能被3整除的的数 发布于:2022-09-29 13:46 冒泡排序算法 发布于:2022-09-29 13:21 顺序查找的实现 发布于:2022-09-29 13:00 打印三位数,这三位数要满足个位比百位大,百位比十位大,三个位数之和和三个位数之积相等 发布于:2022-09-29 12:32 [更多]
显示目录

存储类



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

使用此草稿 删除草稿

  • 00:23
注册登录后可减少验证码的弹出,点击前往 注册 | 登录

皮肤:

运行模式:

嵌入代码 iframe嵌入:


服务器已安装大部分常用的第依赖库,但仍可能存在一些未被安装的库, 可以通过本窗口立即安装所需依赖库。


请输入依赖库的名称:

请选择语言: