我正在浏览一些C代码。其中一些有点难以理解。例如,以下分配做什么:
MY_TYPE my_var[3]={0};
MY_TYPE
是一些定点算术类型。我还没有遇到带[]
括号的变量和带有{}
周围值的赋值。
那太容易了,我猜。那么,定义有什么好处
my_type my_var[3]={0};
对此:
my_type my_var[3];
我正在浏览一些C代码。其中一些有点难以理解。例如,以下分配做什么:
MY_TYPE my_var[3]={0};
MY_TYPE
是一些定点算术类型。我还没有遇到带[]
括号的变量和带有{}
周围值的赋值。
那太容易了,我猜。那么,定义有什么好处
my_type my_var[3]={0};
对此:
my_type my_var[3];
它是一个由 3 个元素组成的数组,全部初始化为 0。
my_var
它创建一个大小为 3的类型数组,MY_TYPE
并初始化为全 0(我怀疑MY_TYPE
是某种整数类型)。请注意,只需进行一次初始化,其余的也将被初始化。
另请注意,如果您在全局而不是在块内声明数组,那么它将自动初始化,这就MY_TYPE my_var[3];
足够了。
它是 3 个元素的一维数组,初始化为 0。从技术上讲,当您初始化数组的一个元素时,所有其他元素都会自动初始化为 0。
所以有 3 个索引的 3 个元素:
my_var[0]=0;
my_var[1]=0;
my_var[2]=0;
My_TYPE
可以是int
或char
任何其他数据类型。我希望这有帮助。
在此处阅读有关数组的更多信息:http ://www.cplusplus.com/doc/tutorial/arrays/
MY_TYPE my_var[3]={0};
将数组初始化my_var
为:
我的变量[0] = 0; my_var[1] = 0; my_var[2] = 0;
使用的好处
my_type my_var[3]={0};
超过
my_type my_var[3];
是第一条语句初始化了数组。如果没有初始化器,您的数组将包含垃圾值(无论之前发生在这些内存位置中的内容)。
my_var[3]
是一个类型变量MY_TYPE
,可以存储三个相同类型的值(称为Array)。大括号{}
在这里用作初始化器。my_var[3] = {0}
将其第一个元素0
初始化为。其余元素由自身初始化为零。
MY_TYPE my_var[3];
在内存中为 的数据保留三个空间MY_TYPE
。然而;
MY_TYPE my_var[3] = {0};
将所有这三个空格初始化为0
.