为什么我们不能使用C中的表达式为全局变量赋值?

用户123

在下面的代码片段中,我试图使用一个表达式为全局变量分配一个值,但它给出错误“初始化元素不是常量”,我无法理解其背后的逻辑,请对此进行澄清。

#include<stdio.h>
int a=8;
int b=a+9;
int main()
{
    printf("%d",b);
    return 0;
}
纪尧姆·米歇尔(Guillaume Michel)

您可以使用表达式分配全局变量。但仅在函数内部。就像编译器/链接器所说的那样,在函数外部您只能将变量初始化为常量。这是因为,在函数外部,无法执行任何代码,并且编译器/链接器会在构建时将变量初始化为常量。请注意,如果不初始化变量(在函数外部),则默认初始化为0。

#include<stdio.h>
int a=8;
int b;
int main()
{
   b=a+9;
   printf("%d",b);
   return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们不能使用表达式强健的构造函数?

来自分类Dev

为什么我们不能使用scanf直接初始化struct中的变量?

来自分类Dev

为什么我们将## * /表达式与bash变量一起使用

来自分类Dev

为什么我们必须使用赋值表达式来获取await的返回值?

来自分类Dev

为什么我们不能将 lambda 表达式直接分配给 Object 类型的引用变量?

来自分类Dev

为什么我们不能通过class-member-access表达式使用嵌套类型?

来自分类Dev

在C ++中为全局变量赋值

来自分类Dev

为什么我们不能使用rank()分析函数删除表中的重复项?

来自分类Dev

为什么我们不能使用rank()分析函数删除表中的重复项?

来自分类Dev

为什么我不能访问全局变量中的值

来自分类Dev

为什么我不能使用(cnt <-hGetContents h)表达式而不是cnt?

来自分类Dev

为什么我不能使用warnings.filterwarnings抑制正则表达式的警告

来自分类Dev

为什么我们不能直接将 lambda 函数/表达式的输出直接打印为字符串、列表或元组?

来自分类Dev

为什么我们在全局变量前加上“ window。”?

来自分类Dev

我们可以在 JMeter 的 JSON Extracter 中的 JSONPath 表达式中使用变量吗

来自分类Dev

为什么我们不能使用超类的引用变量来访问其子类的方法(超类中没有的方法)?

来自分类Dev

为什么我不能在C#中直接表达表达式并直接为null?

来自分类Dev

GNU grep&find -regex:为什么。正则表达式中需要的,为什么我不能使用POSIX字符类?

来自分类Dev

为什么不能给具有相同名称的命名函数表达式中的变量赋值?

来自分类Dev

为什么我们不能在C中使用变量作为e的值

来自分类Dev

为什么我们不能使用单个ListItem对象在DropDownList ASP.net中添加项目

来自分类Dev

为什么不能使用正则表达式将字符串验证为映射键?

来自分类Dev

为什么我们需要使用指针为Go / C中的变量分配值,而不是C#/ Java

来自分类Dev

我们如何在引用中的 r 中使用全局变量

来自分类Dev

为什么我们不能使用GetConstructor找到Int32的默认构造函数?

来自分类Dev

为什么我们不能使用指向字符串的指针?

来自分类Dev

为什么我们不能使用push方法来迭代javascript数组?

来自分类Dev

为什么我们不能使用忽略的可选参数调用委托实例?

来自分类Dev

REST为什么我们不能使用字符作为查询参数

Related 相关文章

  1. 1

    为什么我们不能使用表达式强健的构造函数?

  2. 2

    为什么我们不能使用scanf直接初始化struct中的变量?

  3. 3

    为什么我们将## * /表达式与bash变量一起使用

  4. 4

    为什么我们必须使用赋值表达式来获取await的返回值?

  5. 5

    为什么我们不能将 lambda 表达式直接分配给 Object 类型的引用变量?

  6. 6

    为什么我们不能通过class-member-access表达式使用嵌套类型?

  7. 7

    在C ++中为全局变量赋值

  8. 8

    为什么我们不能使用rank()分析函数删除表中的重复项?

  9. 9

    为什么我们不能使用rank()分析函数删除表中的重复项?

  10. 10

    为什么我不能访问全局变量中的值

  11. 11

    为什么我不能使用(cnt <-hGetContents h)表达式而不是cnt?

  12. 12

    为什么我不能使用warnings.filterwarnings抑制正则表达式的警告

  13. 13

    为什么我们不能直接将 lambda 函数/表达式的输出直接打印为字符串、列表或元组?

  14. 14

    为什么我们在全局变量前加上“ window。”?

  15. 15

    我们可以在 JMeter 的 JSON Extracter 中的 JSONPath 表达式中使用变量吗

  16. 16

    为什么我们不能使用超类的引用变量来访问其子类的方法(超类中没有的方法)?

  17. 17

    为什么我不能在C#中直接表达表达式并直接为null?

  18. 18

    GNU grep&find -regex:为什么。正则表达式中需要的,为什么我不能使用POSIX字符类?

  19. 19

    为什么不能给具有相同名称的命名函数表达式中的变量赋值?

  20. 20

    为什么我们不能在C中使用变量作为e的值

  21. 21

    为什么我们不能使用单个ListItem对象在DropDownList ASP.net中添加项目

  22. 22

    为什么不能使用正则表达式将字符串验证为映射键?

  23. 23

    为什么我们需要使用指针为Go / C中的变量分配值,而不是C#/ Java

  24. 24

    我们如何在引用中的 r 中使用全局变量

  25. 25

    为什么我们不能使用GetConstructor找到Int32的默认构造函数?

  26. 26

    为什么我们不能使用指向字符串的指针?

  27. 27

    为什么我们不能使用push方法来迭代javascript数组?

  28. 28

    为什么我们不能使用忽略的可选参数调用委托实例?

  29. 29

    REST为什么我们不能使用字符作为查询参数

热门标签

归档