我用一个值声明它时结构的元素

时间:2015-07-03 20:07:18

标签: c++ struct

如果我创建一个结构并且在该结构的一个元素中我分配一个值,每当我声明该结构时,该元素是否具有值而不是垃圾?

例如:

typedef struct {
int var1 = 10;
int var2;
} coordinates_t;

每当我创建一个类型为coordinate_t的变量时,该变量的元素var1将为10?

如果没有,有没有办法做到这一点,还是我必须为每个我创建的结构创建0?

该问题的代码版本:

typedef struct {
int v1 = 10;
int v2;
} numbers_t;

numbers_t player1;
printf("%d", player1.v1);
//What will be the output?

2 个答案:

答案 0 :(得分:0)

通过"勇敢"我认为你的意思是"价值"。

我还假设C ++ 11,因为C ++ 03不允许使用该语法。

是的,每次构造结构时,您都默认使用值10初始化int v1

答案 1 :(得分:0)

  

_"每当我创建一个类型为coordinate_t的变量时,该变量的元素var1将为10?" _

是的。

typedef struct {
    int v1 = 10;
    int v2;
} numbers_t;

int main() { 
    numbers_t player1;
    printf("%d", player1.v1);
}

输出

10

Proof

代码fails to compile