当我用值声明结构时,它的元素

Elements of a struct when I declare it with a value

本文关键字:元素 结构 声明      更新时间:2023-10-16

如果我创建了一个结构,并且在该结构的某个元素中分配了一个值,那么无论何时我声明该结构,该元素都会有值而不是垃圾吗?

例如:

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?

我认为"valor"是指"value"。

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

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

_"每次我创建coordinate_t类型的变量时,该变量的元素var1将是10?"_

对于c++是的。

typedef struct {
    int v1 = 10;
    int v2;
} numbers_t;
int main() { 
    numbers_t player1;
    printf("%d", player1.v1);
}

输出

10

证明


对于c,代码无法编译。