struct { char name[20]; int age; }person; person person1= { 0,0 };这样的格式有问题吗,有问题的话要改成什么样
时间: 2024-02-25 21:53:38 浏览: 61
这个格式是有问题的。在给person1赋值时,应该按照结构体定义的顺序,先给name赋值,再给age赋值。同时,结构体的定义应该放在函数外部,否则会出现重定义的错误。
正确的格式应该是这样的:
```c++
struct Person {
char name[20];
int age;
};
Person person1 = {"John", 25};
```
这样就定义了一个名为Person的结构体,包含name和age两个成员变量。同时,person1也被正确地初始化为{name: "John", age: 25}。
相关问题
struct { char name[20]; int age; }person; person person1= { 0,0 };这样的格式有问题吗
这种格式有问题。首先,定义变量时需要指定变量名和变量类型,而这里的变量类型只写了一半,没有给出变量名。另外,person 和 person1 的类型不匹配。person 是一个匿名结构体类型的变量,而 person1 是一个普通结构体类型的变量,它们的类型不同。如果想要定义 person1 为一个匿名结构体类型的变量,应该按如下方式进行定义:
```
struct {
char name[20];
int age;
} person1 = {"", 0};
```
其中,花括号中的内容表示匿名结构体的定义,person1 的类型为该匿名结构体类型,初始值为 name 为 "",age 为 0。
struct Person { char name[20]; int age; }person1; 这样的格式有问题吗
这种格式是可以的。这是将结构体的定义和全局变量的声明合并到了一起,可以简化代码。这种写法中,结构体名 Person 作为类型名,表示定义了一个类型为 Person 的结构体,同时也声明了一个全局变量 person1,其类型为 Person。这种写法在结构体较简单时可用,但当结构体过于复杂时,不建议使用这种写法,因为可能会导致代码难以阅读和维护。
阅读全文