此问题已在此处有答案:
How to initialize all members of an array to the same value?(26答案)
2小时前关闭
我正在尝试将位图初始化为所有位。我的想法是初始化一个缓冲区大小的数组,然后使用memcpy
;然而:
#include <stdio.h>
#define SIZE 5
int main () {
int i[SIZE] = { ~0 };
for (int j = 0 ; j < SIZE ; j++) {
printf("%d\n", i[j]);
}
return 0;
}
结果:
-1
0
0
0
0
我的期望是我会看到所有的-1
。为什么这不起作用,我如何才能实现我的目标?
1条答案
按热度按时间pb3skfrl1#
这一点:
只将数组的第一个元素显式初始化为
~0
。其余的隐式设置为0。如果你想设置所有的位,你需要使用
memset
: