{10, 20, 30, 40, 50}在正常情况下还是列表初始化,但是当{10, 20, 30, 40, 50}要作为函数参数(printList({10, 20, 30, 40, 50}))或者要赋值给一个自定义类型时,编译器会将{10, 20, 30, 40, 50}构造成一个initializer_list类型的匿名对象(initializer_list{10, 20, 30, 40, 50};) ,然后将该对象向某个函数传参(printList({10, 20, 30, 40, 50})