Mr.*_*ent 0 c++ arrays initialization curly-braces
我想知道如何将值初始化为诸如数组的某些元素。
int arr[5]={3,5,6};
Run Code Online (Sandbox Code Playgroud)
以3的
索引为0,5的索引为2的方式,因此索引1被编译器跳过并自动分配值!
谢谢您的帮助!
以3的索引为0而5的索引为2。
那会是
int arr[5] = {3,0,5,6};
Run Code Online (Sandbox Code Playgroud)
因此索引1被编译器跳过并自动分配值!
您不能跳过中间的元素,只能跳过最后的元素
int arr[5] = {3,5,6};
Run Code Online (Sandbox Code Playgroud)
最后缺少的元素以0初始化。
请注意,您可以在C中实现所需的功能。cppreference的示例:
Run Code Online (Sandbox Code Playgroud)int n[5] = {[4]=5,[0]=1,2,3,4} // holds 1,2,3,4,5
但是,这在标准C ++中还不可能吗?
PS:如果您不关心可移植性(实际上应该这样做),则可以阅读编译器手册,以了解它是否也允许在C ++中使用c样式的初始化。