结构体定义时候不可以初始化吗?
时间: 2023-09-03 14:08:10 浏览: 161
结构体定义时可以初始化,但是只能在定义变量时进行初始化,而不能在结构体定义时进行初始化。例如:
```
struct Point {
int x;
int y;
};
// 可以定义并初始化一个Point结构体变量
Point p = {1, 2};
// 以下写法是错误的
// struct Point { int x = 0; int y = 0; };
// Point p = {1, 2};
```
希望能够解答你的问题。
相关问题
结构体定义并初始化可以吗
可以的。结构体定义可以使用 struct 关键字,然后通过定义结构体变量进行初始化。例如:
```
struct Person {
char name[20];
int age;
float height;
};
struct Person person1 = {"Tom", 20, 1.75};
```
这里定义了一个结构体 Person,包含姓名、年龄和身高三个属性。然后通过定义结构体变量 person1 并使用前面定义的结构体进行初始化,即可得到一个具有指定属性的结构体变量。
结构体分号前是不是可以初始化一个结构体
在C语言中,结构体的成员可以在定义时进行初始化,但是不能在结构体的分号前进行初始化。结构体的初始化通常是在定义结构体变量时进行的。
例如,定义一个包含姓名和年龄的结构体Person:
```c
struct Person {
char name[20];
int age;
};
```
可以在定义结构体变量时进行初始化:
```c
struct Person p1 = {"John", 25};
```
这样就给结构体变量p1的成员name赋值为"John",age赋值为25。
另外,也可以在定义结构体时给成员指定默认值:
```c
struct Person {
char name[20];
int age;
} p2 = {"Alice", 30};
```
这样定义结构体的同时,就给结构体变量p2的成员name赋值为"Alice",age赋值为30。
需要注意的是,结构体的成员初始化只能在定义结构体变量时进行,而不能在结构体定义的分号前进行初始化。
阅读全文