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
}
如果我尝试在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
| 归档时间: | 
 | 
| 查看次数: | 70 次 | 
| 最近记录: |