该代码调用未定义行为(UB),因为未初始化使用了指针。使用警告标志时,编译器应发出警告,-Wall例如:warning: 'i' is used uninitialized in this function [-Wuninitialized] cout << i; ^碰巧的是,在您的系统上,此运行时它的值为0。这意味着该变量被分配给的垃圾值恰好为0,因为那里的内存剩余表明了这一点。但是,请注意,内核零点相对经常出现。这意味着我可以得到零作为系统输出是很常见的,但是并不能保证也不应该将其视为承诺。