Dan*_*ood 7 c arrays declaration variable-assignment
在更高级别的语言中,我将能够在C中使用类似于此示例的内容,并且它会很好.但是,当我编译这个C例子时,它会痛苦地抱怨.如何将新数组分配给我声明的数组?
int values[3];
if(1)
values = {1,2,3};
printf("%i", values[0]);
Run Code Online (Sandbox Code Playgroud)
谢谢.
Mar*_*off 12
在声明数组时,您只能对数组进行多次赋值:
int values[3] = {1,2,3};
Run Code Online (Sandbox Code Playgroud)
声明后,您必须单独分配每个值,即
if (1)
{
values[0] = 1;
values[1] = 2;
values[2] = 3;
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用循环,具体取决于您要使用的值.
if (1)
{
for (i = 0 ; i < 3 ; i++)
{
values[i] = i+1;
}
}
Run Code Online (Sandbox Code Playgroud)
在C99中,使用复合文字,您可以:
memcpy(values, (int[3]){1, 2, 3}, sizeof(int[3]));
Run Code Online (Sandbox Code Playgroud)
要么
int* values = (int[3]){1, 2, 3};
Run Code Online (Sandbox Code Playgroud)
您可以使用要初始化的数据声明静态数组:
\n\nstatic int initvalues[3] = {1,2,3};\n\xe2\x80\xa6\nif(1)\n memmove(values,initvalues,sizeof(values));\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
43382 次 |
| 最近记录: |