定义与变量的初始化

时间:2014-04-14 23:09:54

标签: c

我相信我是对的,但只是确定 int c;声明cc = 5;c初始化为5, 和 int c = 5;声明并初始化c。 我对所有这些都是正确的吗?初始化只是变量设置为正确的第一个值吗?

3 个答案:

答案 0 :(得分:3)

int c;

声明并定义c

c = 5;

不是初始值设定项,但它将值5 分配给c,这具有相同的效果。

初始化程序是一个语法结构,是声明的一部分。赋值是一种不同的句法结构,它或多或少地做同样的事情。

此:

int c = 5;

声明并初始化c; 5是初始化程序。

此:

int c;
c = 5;

具有相同的效果,但没有初始化器。

(你可以非正式地说,为变量分配一个值"初始化"它,但它不使用初始化器就这样做。)

区分很重要的一个案例:

const int c = 5;

这会将c初始化为5。您无法对作业执行相同的操作,因为您无法指定const(只读)对象。

答案 1 :(得分:2)

初始化是设置变量的初始值,因此您是正确的。

这是关于初始化的维基百科文章的第一行:

  

在计算机编程中,初始化是指定数据对象或变量的初始值。

答案 2 :(得分:1)

您的所有陈述都是正确的,但您缺少一个定义,即定义和声明之间的区别。

int c;声明定义c,但不会初始化它。

extern int c;将声明它但不定义它。 (它不分配存储空间。)