use*_*198 0 c declaration definition
假设我有以下程序:
int main(void)
{
int i; //Line 1
i=5; //Line 2
int *j; //line 3
j=&i; //line 4
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试在Visual Studio中的第1行之后打印i,它会给出一个编译时错误,说明我使用的单元化变量.这是否意味着没有为i分配存储,而第1行只是一个声明?我理解第2行是一个定义.
还有,第3行和第4行呢?他们是宣言还是定义?
第1行和第3行是定义,说它们是声明也是合法的,因为所有定义都是声明.
错误是因为使用未初始化的变量是未定义的行为,而不是因为它们的存储未分配.
第2行和第4行是赋值语句.你似乎对初始化和分配感到困惑.
int n = 42; //definition with initalization
int m; //definition, but uninitiazlied
n = 10; //assignment
m = 10; //assignment
Run Code Online (Sandbox Code Playgroud)