c++ - 为什么当您尝试使用 arr = {values} 为数组赋值时会发生错误?

标签 c++ c arrays variable-assignment

为什么不允许在 C(或 C++)中使用?

我的意思是:

ucell GetPlayerPosPositionData[5];
GetPlayerPosPositionData = {4*sizeof(cell),playerid,0,sizeof(cell),2*sizeof(cell)};//this does not work, error

//normal assignment
GetPlayerPosPositionData[1] = playerid;
GetPlayerPosPositionData[2] = 0;
GetPlayerPosPositionData[3] = sizeof(cell);
GetPlayerPosPositionData[4] = 2*sizeof(cell);

最佳答案

因为数组是不可赋值的。您可以在声明时初始化它们,也可以在每个元素的基础上分配它们,仅此而已。这会起作用:

ucell GetPlayerPosPositionData[] = {4*sizeof(cell),
                                    playerid,
                                    0,
                                    sizeof(cell),
                                    2*sizeof(cell)};

关于c++ - 为什么当您尝试使用 arr = {values} 为数组赋值时会发生错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13781757/

相关文章:

c++ - 使用 curses 库时使用 move() 或 wmove() 时光标不会移动

c++ - Protocol Buffer - 存储双数组、1D、2D 和 3D

c++ - 单例模式的延迟初始化

c - 为什么在 ioctl 命令中从用户空间复制结构失败?

c++ - 'while' 和 'for' 循环的范围是什么?

arrays - 查找给定列表上某些元素的所有索引。 Haskell 中没有数组的情况下可以在小于 O(n^2) 的时间内完成吗?

c++访问 map 时发生访问冲突

c - 我迷路了,我的输出不正确 (C)

python - 在python 2.7中将8位转换为字节数组

c - 如何在 C 中定义函数数组