如果我们声明C内存中的变量是为该变量分配的,或者不是。我的假设是,如果我们声明变量内存是为该变量分配的,但我今天在一些站点研究过,当我们声明时,内存不会分配给变量。 可以帮助我澄清这个疑问。
答案 0 :(得分:3)
变量声明只告诉编译器变量存在,它有什么类型及其名称。
另一方面,变量定义实际上会导致编译器为变量分配空间。
通常情况下,变量声明和定义同时发生,这就是为什么通常会对这两者产生一些混淆,以及为什么两者通常只被称为"声明"。
作为一个脚注,上面并不是完整的故事,还有暂定定义之类的东西,可以是声明或定义。对于没有初始化的全局变量,这是常见的。
答案 1 :(得分:2)
声明永远不会为变量分配内存,通常是让编译器知道“类型”(要求)。
相反,定义是分配实际内存的位置。
这就是为什么,同一个变量可以多次声明(只要它们不与以前的类型冲突),但不能多次定义。