当前位置: 首页 > 编程笔记 >

解决C++全局变量只能初始化不能赋值的问题

淳于飞鸾
2023-03-14
本文向大家介绍解决C++全局变量只能初始化不能赋值的问题,包括了解决C++全局变量只能初始化不能赋值的问题的使用技巧和注意事项,需要的朋友参考一下

C++中,全局变量只能声明、初始化,而不能赋值

也就是说,下面这样是不被允许的:

#include <cstdio>

using namespace std;
int a;
a = 2;
int main() {

 return 0;
}

错误提示是:

C++ requires a type specifier for all declarations

声明、初始化与赋值的区别:

声明:int a;

初始化:int a = 2;(在声明的时候顺带赋值叫做初始化)

赋值:a = 2;

只有定义(int a;)才分配存储空间,初始化必须要有存储空间来初始化

全局变量在声明时候顺带赋值(也就是初始化)是可以的,但是如果先声明,不赋值,之后再赋值的话,程序是执行不到这里的,也无法通过编译

以上这篇解决C++全局变量只能初始化不能赋值的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 场景2:我们希望横向扩展规则执行服务器。假设我们有一个公开REST-API的规则引擎服务器(kie-server)。我们是否可以在loadbalancer后面运行多个实例以使其水平伸缩?还有其他方法可以实现可伸缩性吗?

  • 问题内容: UI类在View中,导入已完成,但是在最后一个表达式中我得到了错误。 我是Java的入门者,但我不明白为什么我不允许这样使用它。 问题答案: 如果要在Java方法中声明变量/对象,则需要对其进行初始化。 简单来说 在您的情况下,它是一个正在访问方法的对象,因此,如果不初始化它,就像 它会给你一个NULL指针异常。 希望能帮助到你。

  • 问题内容: 我有一个方法创建一个,另一个方法更改字符串 我的编译器说它“可能尚未初始化”。 有人可以解释吗? 问题答案: 变量可能尚未初始化 在内部定义方法时,必须在其中初始化程序的每个变量中必须先使用一个值的地方。 同样重要的是,您的代码将永远无法正常运行,因为Java中的字符串是不可变的,因此您无法编辑字符串,因此应更改方法。 我将您的代码更改为类似的内容,但是我认为您的编辑方法应该做另一件事

  • 我对python相当陌生,我想知道局部变量是如何工作的。让我们从一个简单方法的示例开始: 让我们假设local_dict像一种常量变量一样使用。这里有一个问题:它是在每次调用do_sth()时创建的,还是创建一次并保存在do_sth()内部的某个地方?

  • 问题内容: 我还是Python的新手,我一直在尝试提高Python脚本的性能,因此我在有或没有全局变量的情况下对其进行了测试。我给它计时,令我惊讶的是,它在声明了全局变量的情况下运行得更快,而不是将局部变量传递给函数。这是怎么回事?我以为局部变量的执行速度更快?(我知道全球人并不安全,我仍然很好奇。) 问题答案: 当地人应该更快 根据此页面上的本地人和全球人: 当一行代码要求输入变量x的值时,Py

  • 所以我已经在结果中声明了相关字符串的值,但是它仍然说我的变量“result”可能还没有初始化。 我正在尝试实现与此类似的输出。任何人都可以帮我吗?谢谢!

  • 我正在研究Euler Problem 9项目,其中说明: 毕达哥拉斯三元组是由三个自然数组成的集合 例如,3^2 4^2=9 16=25=52。 确实存在一个毕达哥拉斯三重态,其bc=1000。查找产品abc。 以下是我到目前为止所做的: 当我运行代码时,会出现以下错误: 注意:我的每个变量(a、b和c)都有不同的行号。 我想当我声明a、b和c为整数时,如果不赋值,默认值是0。 即使不是这样,在我

  • 编译此代码会给出“错误:将'const int'绑定到'int类型的引用