【问题标题】:Understanding statements in C理解 C 中的语句
【发布时间】:2013-06-22 08:04:48
【问题描述】:

我正在浏览一些 C 代码。其中一些有点难以理解。例如,下面的赋值是做什么的:

MY_TYPE my_var[3]={0};

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

这太容易了,我猜。那么,定义

有什么好处?
my_type my_var[3]={0};

在此:

my_type my_var[3];

【问题讨论】:

    标签: c variables types variable-assignment


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我已经删除了我的答案......你说的是正确的......我不知道的一点细微差别,感谢您纠正我。我认为这将是您在这里回答的一个很好的补充......
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        它是 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/

        【讨论】:

          【解决方案5】:

          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

          【讨论】:

            【解决方案6】:

            使用的好处

            my_type my_var[3]={0};
            

            结束

            my_type my_var[3];
            

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

            【讨论】:

            • “没有初始化器,你的数组将包含垃圾值”——除非它是全局声明的。
            • 没问题,当涉及到默认初始化什么和不初始化什么时,事情会变得有点棘手。
            猜你喜欢
            • 1970-01-01
            • 2010-11-15
            • 1970-01-01
            • 2010-09-22
            • 2020-12-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多