我知道你可以像这样在C中声明一个数组:
int nums[5] = {0,1,2,3,4};
Run Code Online (Sandbox Code Playgroud)
但是,你能这样做吗?
int nums[5];
// more code....
nums = { 0,2,5,1,2};
Run Code Online (Sandbox Code Playgroud)
换句话说,我可以在除声明之外的任何其他时间使用括号表示法初始化数组吗?谢谢你的时间,山姆
Joh*_*itb 17
这在C89中是不可能的(大多数C编译器的目标).C99由少数人支持,并具有复合文字:
int nums[5];
memcpy(nums, (int[5]){1, 2, 3, 4, 5}, 5 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)
但是,您无法分配给数组.您只能复制到其内存.您需要在C89中复制的另一个阵列
int nums[5];
int vals[] = { 1, 2, 3, 4, 5 };
memcpy(nums, vals, sizeof vals);
Run Code Online (Sandbox Code Playgroud)
请注意,sizeof运算符返回其操作数的大小(以字节为单位).
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |