4

我正在浏览一些C代码。其中一些有点难以理解。例如,以下分配做什么:

MY_TYPE my_var[3]={0};

MY_TYPE是一些定点算术类型。我还没有遇到带[]括号的变量和带有{}周围值的赋值。

那太容易了,我猜。那么,定义有什么好处

my_type my_var[3]={0};

对此:

my_type my_var[3];
4

6 回答 6

4

它是一个由 3 个元素组成的数组,全部初始化为 0。

于 2013-06-25T13:35:07.563 回答
4

my_var它创建一个大小为 3的类型数组,MY_TYPE并初始化为全 0(我怀疑MY_TYPE是某种整数类型)。请注意,只需进行一次初始化,其余的也将被初始化。

另请注意,如果您在全局而不是在块内声明数组,那么它将自动初始化,这就MY_TYPE my_var[3];足够了。

于 2013-06-25T13:35:42.987 回答
2

它是 3 个元素的一维数组,初始化为 0。从技术上讲,当您初始化数组的一个元素时,所有其他元素都会自动初始化为 0。

所以有 3 个索引的 3 个元素:

my_var[0]=0;
my_var[1]=0;
my_var[2]=0;

My_TYPE可以是intchar任何其他数据类型。我希望这有帮助。

在此处阅读有关数组的更多信息:http ://www.cplusplus.com/doc/tutorial/arrays/

于 2013-06-25T13:38:27.047 回答
2

MY_TYPE my_var[3]={0};将数组初始化my_var为:

我的变量[0] = 0; my_var[1] = 0; my_var[2] = 0;

于 2013-06-25T13:35:53.630 回答
1

使用的好处

my_type my_var[3]={0};

超过

my_type my_var[3];

是第一条语句初始化了数组。如果没有初始化器,您的数组将包含垃圾值(无论之前发生在这些内存位置中的内容)。

于 2013-06-25T13:51:07.797 回答
1

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.

于 2013-06-25T13:43:07.577 回答