C ++数组分配给编译器错误

当我尝试为这样的数组赋值时:

int ar[5] = {18,19,20,21,22,23};

我收到一个编译器错误:'int [5]'的初始化程序太多

但是当我这样做时:

int ar[5];
ar[0] = 12, ar[1] = 13, ar[2] = 14, ar[3] = 15, ar[4] = 16, ar[5] = 17;

一切都很好,程序可以正常运行并输出正确的结果,是我做错了还是?