第6题 下面的描述中,( )正确定义一个名为Person的结构体并正确初始化了一个Person结构体的变量p。
 

别灰心,再试一次!

💡 真题解析

【答案】C

【考纲知识点】 结构体的定义与使用

【解析】

各选项分析

选项A:
该结构体定义中没有定义构造函数,而Person p("Yang", 10);试图使用类似构造函数的方式初始化结构体变量,在没有自定义构造函数的情况下,这种初始化方式是错误的。所以选项A不正确。

选项B:
在结构体定义中,string name, 后面的逗号使用错误,应该是分号;来结束成员变量的声明。所以该结构体定义存在语法错误,选项B不正确。

选项C:
此结构体定义正确,并且使用初始化列表的方式对结构体变量p进行初始化,按照成员变量的顺序依次赋值,这种初始化方式是符合C++语法规则的。所以选项C正确。

选项D:
new运算符用于动态分配内存,返回的是一个指向对象的指针。而Person p 定义的是一个结构体变量,不是指针类型。不能将指针赋值给结构体变量,这种赋值方式存在类型不匹配的错误。所以选项D不正确。

综上,答案选C。