第7题 给定如下代码,下面描述错误的是( )。

别灰心,再试一次!

💡 真题解析

【答案】D

【考纲知识点】 结构体嵌套

【解析】

代码分析

struct Person {
     std::string name;
     int age;
     struct Address {
         std::string street;
         std::string city;
     };
     Address address;
};

此代码定义了一个Person结构体,其中嵌套了一个Address结构体,并且Person结构体有一个Address类型的成员address。

各选项分析

选项A:从代码中可以明显看出,Address结构体定义在Person结构体内部,所以结构Person内嵌套结构Address,该选项描述正确。

选项B:代码中Person结构体包含一个Address类型的成员address,即Address address;,该选项描述正确。

选项C:对于一个Person类型的变量p,可以通过p.address.street和p.address.city来访问和初始化address成员的street和city属性,如p.address.street = "123 Main St"; p.address.city = "Anytown";,该选项描述正确。

选项D:虽然结构体的嵌套在一定程度上可以减少命名冲突,但过多的嵌套会增加代码的复杂度,降低代码的可读性和可维护性。因此,在实际编程中需要控制嵌套层次,避免过度嵌套。所以该选项描述错误。

综上,答案选D。