memset只有赋值是-1,0是正确的,原因如下:用memset初始化数组为1出错-CSDN memset是按字节赋值的,取变量a的后8位二进制进行赋值。1的二进制是(00000000 00000000 00000000 00000001),取后8位(00000001),int型占4个字节,当初始化为1时,它把一个int的每个字节都设置为1,也就是0x01010101,...
memset(a,0,sizeof(a)); 这样呢,就将数组a内所有的值都赋成0了,sizeof是一个一元操作符,得到数组a的字节大小。 另外需要注意的是,memset函数是逐字节进行填充,所以a一般为char *型。对于其它类型的a,可以填充的值有两个,0和-1。因为计算机中用二进制补码表示数字,0和二进制补码为全0,-1的二进制补码为...
void *memset(void *s,int ch,int n);功能:将内存中某一块的每个字节设置为ch,块大小为n,n是以字节为单位的 题目要求是:初始化一个整形数组,并且让他输出全为1 如果你偏要输出1的话,可以这样,把1当作字符 int a[5];memset(a,'1',5*sizeof(int));
百度试题 结果1 题目 int类型的数组a,执行memset(a, 0, sizeof(a));后,所有元素自动初始化为0,所以,执行memset(a, 1, sizeof(a));后,所有元素自动初始化为1。( ) A:错 B:对 答案( ) 相关知识点: 试题来源: 解析 错误 反馈 收藏 ...
百度试题 结果1 题目 int类型的数组a,执行memset(a, 0, sizeof(a));后,所有元素自动初始化为0,所以,执行memset(a, 1, sizeof(a));后,所有元素自动初始化为1。( ) 参考答案( ) 相关知识点: 试题来源: 解析 错误 反馈 收藏