我相信我是对的,但只是确定
int c;
声明c
,
c = 5;
将c
初始化为5
,
和
int c = 5;
声明并初始化c
。
我对所有这些都是正确的吗?初始化只是变量设置为正确的第一个值吗?
答案 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;
将声明它但不定义它。 (它不分配存储空间。)