这个对象数组是如何初始化每个对象的成员变量的呢?

How does this array of objects initialize each object's member variable?

#include <cstudio>

struct Food {
   char recipe[128];
};

void print_food(Food* food_ptr) {
   printf("Recipe: %s\n", food_ptr->recipe);
}

int main() {
   Food menu[] = {"Burn it", "Drop it", "USe too much salt"};
   print_food(menu);
}

menu 数组中的 Food 对象是如何初始化的?它似乎没有调用任何构造函数,甚至没有任何定义。

首先,你应该知道,如果构造函数没有被显式写入,那么它们就会被隐式写入。

正如超级已经提到的,你的食谱是 aggregate initialized